<?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>204732</bug_id>
          
          <creation_ts>2019-12-01 15:03:12 -0800</creation_ts>
          <short_desc>[GTK][WPE] Re-add flatpak sandbox support</short_desc>
          <delta_ts>2020-02-06 11:26:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick Griffis">pgriffis</reporter>
          <assigned_to name="Patrick Griffis">pgriffis</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594443</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-12-01 15:03:12 -0800</bug_when>
    <thetext>[GTK][WPE] Re-add flatpak sandbox support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594444</commentid>
    <comment_count>1</comment_count>
      <attachid>384581</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-12-01 15:10:25 -0800</bug_when>
    <thetext>Created attachment 384581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594445</commentid>
    <comment_count>2</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-12-01 15:12:11 -0800</bug_when>
    <thetext>Before being committed there are some remaining upstream flatpak issues that are being worked on: https://github.com/flatpak/flatpak-xdg-utils/pull/24</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607864</commentid>
    <comment_count>3</comment_count>
      <attachid>388009</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-01-16 21:28:16 -0800</bug_when>
    <thetext>Created attachment 388009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615651</commentid>
    <comment_count>4</comment_count>
      <attachid>388009</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-06 08:39:17 -0800</bug_when>
    <thetext>Comment on attachment 388009
Patch

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

&gt; Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:54
&gt; +static bool isFlatpakSpawnUsable(const ProcessLauncher::LaunchOptions&amp; launchOptions)

Don&apos;t we need to check if running under flatpak before trying to use flatpak-spawn?

&gt; Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:66
&gt; +            ret = false;
&gt; +            return *ret;

Please print a g_warning() in this case. We shouldn&apos;t silently disable the sandbox.

&gt; Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:203
&gt;  
&gt; +

Should be only one line of whitespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615654</commentid>
    <comment_count>5</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-06 08:40:20 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; Comment on attachment 388009 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=388009&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:54
&gt; &gt; +static bool isFlatpakSpawnUsable(const ProcessLauncher::LaunchOptions&amp; launchOptions)
&gt; 
&gt; Don&apos;t we need to check if running under flatpak before trying to use
&gt; flatpak-spawn?

It will just safely fail on the host.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615655</commentid>
    <comment_count>6</comment_count>
      <attachid>389961</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-06 08:47:51 -0800</bug_when>
    <thetext>Created attachment 389961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615667</commentid>
    <comment_count>7</comment_count>
      <attachid>389964</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-06 08:50:25 -0800</bug_when>
    <thetext>Created attachment 389964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615676</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-06 09:06:18 -0800</bug_when>
    <thetext>(In reply to Patrick Griffis from comment #5)
&gt; It will just safely fail on the host.

There is the new warning message though, which we don&apos;t want printing when not running in flatpak. Makes sense to add another check, yes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615677</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-06 09:07:25 -0800</bug_when>
    <thetext>Maybe we don&apos;t need the check for /tmp after all. We don&apos;t support any stable flatpaks of Epiphany, only Epiphany Technology Preview. So there&apos;s nothing to keep working. Right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615696</commentid>
    <comment_count>10</comment_count>
      <attachid>389971</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-06 10:22:31 -0800</bug_when>
    <thetext>Created attachment 389971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615697</commentid>
    <comment_count>11</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-06 10:22:43 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #9)
&gt; Maybe we don&apos;t need the check for /tmp after all. We don&apos;t support any
&gt; stable flatpaks of Epiphany, only Epiphany Technology Preview. So there&apos;s
&gt; nothing to keep working. Right?

Yeah that is fair. Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615714</commentid>
    <comment_count>12</comment_count>
      <attachid>389971</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-06 11:26:52 -0800</bug_when>
    <thetext>Comment on attachment 389971
Patch

Clearing flags on attachment: 389971

Committed r255969: &lt;https://trac.webkit.org/changeset/255969&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615715</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-06 11:26:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384581</attachid>
            <date>2019-12-01 15:10:25 -0800</date>
            <delta_ts>2020-01-16 21:28:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204732-20191201151025.patch</filename>
            <type>text/plain</type>
            <size>10887</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlkMzNhODI4Y2RkMzYxNzgy
OGNjMTQzYTdiMjc3OGJlMDUyMDg1YTUuLmU5NzVmNjg4ZWQ5N2M5MTBhMTI2Yjg4MTA0ZDc4ZDI2
YWE4MjJiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTItMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBSZS1h
ZGQgZmxhdHBhayBzYW5kYm94IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDczMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgYnJpbmdzIGJhY2sgdGhlIEZsYXRwYWsgYmFzZWQgc2Fu
ZGJveCBub3cgdGhhdCB1cHN0cmVhbSBoYXMgYWRkZWQKKyAgICAgICAgZmVhdHVyZXMgdG8gdGhl
aXIgc3Bhd24gcG9ydGFsIHRvIGFjY29tb2RhdGUgb3VyIG5lZWRzLgorCisgICAgICAgICogU291
cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OmZsYXRwYWtTcGF3bik6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIv
RmxhdHBha0xhdW5jaGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9n
bGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc0ZsYXRwYWtT
cGF3blVzYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OmlzSW5zaWRlRmxhdHBhayk6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisKIDIwMTktMTEtMjUg
IENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIENo
ZWNrIEVHTCBpbWFnZSBleHRlbnNpb24gYnkgdXNpbmcgbmF0aXZlIGdsIEFQSSBpbiBBY2NlbGVy
YXRlZEJhY2tpbmdTdG9yZVdheWxhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0dUSy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IDFhMDVlMzM0MzQz
ZGI4ZGZiNTI1NDE4YzVmODQ3MjJlZDQ1ZjE1NDguLmRkNjZmY2QzNDU2NjcwOGJhYTllYzdkMzJi
ODA2MjFmMWFlOGI0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtMjExLDYgKzIxMSw3IEBAIFVJ
UHJvY2Vzcy9nZW9jbHVlL0dlb2NsdWVHZW9sb2NhdGlvblByb3ZpZGVyLmNwcAogCiBVSVByb2Nl
c3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9MYXVuY2hlci9nbGliL0J1YmJsZXdyYXBMYXVuY2hlci5jcHAgQG5vLXVuaWZ5CitVSVBy
b2Nlc3MvTGF1bmNoZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3BwIEBuby11bmlmeQogCiBVSVBy
b2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApp
bmRleCAzZDIwMGZhNjBlOWZlNjk2OGM5MmQ1YTBkN2I0NThlZmE0YjQ2MTMwLi44YTAwYjVmNGJj
ODg4NzQzZTkwODY0ODJmMzY2MmQ2ZjMwYThhYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNXUEUudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKQEAgLTE5
MSw2ICsxOTEsNyBAQCBVSVByb2Nlc3MvZ2xpYi9XZWJzaXRlRGF0YVN0b3JlR0xpYi5jcHAgQG5v
LXVuaWZ5CiAKIFVJUHJvY2Vzcy9MYXVuY2hlci9nbGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3Bw
CiBVSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwCitVSVByb2Nl
c3MvTGF1bmNoZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3BwCiAKIFVJUHJvY2Vzcy9QbHVnaW5z
L3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1
Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmRm
NzI4OWUzNTk2YjMyNGFkYzhlOTUxYzQ1Y2ZlN2U3NDkxOTBmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9GbGF0cGFrTGF1bmNoZXIuY3Bw
CkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZsYXRwYWtMYXVuY2hl
ci5oIgorCisjaWYgT1MoTElOVVgpCisKKyNpbmNsdWRlIDxnaW8vZ2lvLmg+CisjaW5jbHVkZSA8
d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworR1JlZlB0cjxH
U3VicHJvY2Vzcz4gZmxhdHBha1NwYXduKEdTdWJwcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBj
b25zdCBXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9u
cywgY2hhcioqIGFyZ3YsIGludCBjaGlsZFByb2Nlc3NTb2NrZXQsIEdFcnJvcioqIGVycm9yKQor
eworICAgIEFTU0VSVChsYXVuY2hlcik7CisKKyAgICAvLyBXaGVuIHdlIGFyZSBydW5uaW5nIGlu
c2lkZSBvZiBmbGF0cGFrJ3Mgc2FuZGJveCB3ZSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9ucyB0bwor
ICAgIC8vIHVzZSB0aGUgc2FtZSBzYW5kYm94IHdlIGRvIG91dHNpZGUgYnV0IGZsYXRwYWsgb2Zm
ZXJzIHRvIGNyZWF0ZSBuZXcgc2FuZGJveGVzCisgICAgLy8gZm9yIHVzIHVzaW5nIGZsYXRwYWst
c3Bhd24uCisKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBjaGlsZFByb2Nlc3NTb2NrZXRBcmcoZ19z
dHJkdXBfcHJpbnRmKCItLWZvcndhcmQtZmQ9JWQiLCBjaGlsZFByb2Nlc3NTb2NrZXQpKTsKKyAg
ICBWZWN0b3I8Q1N0cmluZz4gZmxhdHBha0FyZ3MgPSB7CisgICAgICAgICJmbGF0cGFrLXNwYXdu
IiwKKyAgICAgICAgY2hpbGRQcm9jZXNzU29ja2V0QXJnLmdldCgpLAorICAgIH07CisKKyAgICBp
ZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NU
eXBlOjpXZWIpIHsKKyAgICAgICAgZmxhdHBha0FyZ3MuYXBwZW5kVmVjdG9yKFZlY3RvcjxDU3Ry
aW5nPih7CisgICAgICAgICAgICAiLS1zYW5kYm94IiwKKyAgICAgICAgICAgICItLW5vLW5ldHdv
cmsiLAorICAgICAgICAgICAgIi0tc2FuZGJveC1mbGFnPXNoYXJlLWdwdSIsCisgICAgICAgICAg
ICAiLS1zYW5kYm94LWZsYWc9c2hhcmUtZGlzcGxheSIsCisgICAgICAgICAgICAiLS1zYW5kYm94
LWZsYWc9c2hhcmUtc291bmQiLAorICAgICAgICAgICAgIi0tc2FuZGJveC1mbGFnPWFsbG93LWEx
MXkiLAorICAgICAgICAgICAgIi0tc2FuZGJveC1mbGFnPWFsbG93LWRidXMiLAorICAgICAgICB9
KSk7CisKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwYXRoQW5kUGVybWlzc2lvbiA6IGxhdW5j
aE9wdGlvbnMuZXh0cmFXZWJQcm9jZXNzU2FuZGJveFBhdGhzKSB7CisgICAgICAgICAgICBjb25z
dCBjaGFyKiBmb3JtYXRTdHJpbmcgPSBwYXRoQW5kUGVybWlzc2lvbi52YWx1ZSA9PSBTYW5kYm94
UGVybWlzc2lvbjo6UmVhZE9ubHkgPyAiLS1zYW5kYm94LWV4cG9zZS1wYXRoLXJvPSVzIjogIi0t
c2FuZGJveC1leHBvc2UtcGF0aD0lcyI7CisgICAgICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBw
YXRoQXJnKGdfc3RyZHVwX3ByaW50Zihmb3JtYXRTdHJpbmcsIHBhdGhBbmRQZXJtaXNzaW9uLmtl
eS5kYXRhKCkpKTsKKyAgICAgICAgICAgIGZsYXRwYWtBcmdzLmFwcGVuZChwYXRoQXJnLmdldCgp
KTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgY2hhcioqIG5ld0FyZ3YgPSBnX25ld2EoY2hh
ciosIGdfc3Rydl9sZW5ndGgoYXJndikgKyBmbGF0cGFrQXJncy5zaXplKCkgKyAxKTsKKyAgICBz
aXplX3QgaSA9IDA7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFyZyA6IGZsYXRwYWtBcmdzKQor
ICAgICAgICBuZXdBcmd2W2krK10gPSBjb25zdF9jYXN0PGNoYXIqPihhcmcuZGF0YSgpKTsKKyAg
ICBmb3IgKHNpemVfdCB4ID0gMDsgYXJndlt4XTsgeCsrKQorICAgICAgICBuZXdBcmd2W2krK10g
PSBhcmd2W3hdOworICAgIG5ld0FyZ3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICByZXR1cm4gYWRv
cHRHUmVmKGdfc3VicHJvY2Vzc19sYXVuY2hlcl9zcGF3bnYobGF1bmNoZXIsIG5ld0FyZ3YsIGVy
cm9yKSk7Cit9CisKK307CisKKyNlbmRpZiAvLyBPUyhMSU5VWCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhM2JlMGE4NzU4ZTQ0MGJlNmFhZDY3MzVmZTQyOGFlZjQwZWZiY2IKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtM
YXVuY2hlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBPUyhMSU5VWCkKKworI2lu
Y2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorCit0eXBlZGVmIHN0cnVjdCBfR1N1YnByb2Nlc3MgR1N1YnByb2Nlc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR1N1YnByb2Nlc3NMYXVuY2hlciBHU3VicHJvY2Vzc0xhdW5jaGVyOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworR1JlZlB0cjxHU3VicHJvY2Vzcz4gZmxhdHBha1NwYXduKEdTdWJwcm9j
ZXNzTGF1bmNoZXIqLCBjb25zdCBXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYsIGNoYXIqKiBhcmd2LCBpbnQgY2hpbGRQcm9jZXNzU29ja2V0LCBHRXJyb3IqKik7CisKK307
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAKaW5kZXggZDkwNmQ4ZGM4N2Y1YzYy
ZTU2NjZmMGQ3ZDBjYWI1ZDA4ODc0MGQ5Mi4uMzBmOWI1ZjA2ZDBhNDg4ZGU4NDRhOWFjYjRkOGRi
MGVhNmRhZmExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9nbGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNpbmNsdWRlICJCdWJibGV3cmFwTGF1bmNoZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiRmxhdHBha0xhdW5jaGVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgpAQCAt
NDksNiArNTAsMjYgQEAgc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1bmN0aW9uKGdwb2ludGVyIHVz
ZXJEYXRhKQogICAgIGNsb3NlKHNvY2tldCk7CiB9CiAKKyNpZiBPUyhMSU5VWCkKK3N0YXRpYyBi
b29sIGlzRmxhdHBha1NwYXduVXNhYmxlKCkKK3sKKyAgICBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4g
cmV0OworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiAqcmV0OworCisgICAgLy8gRm9yIG91
ciB1c2FnZSB0byB3b3JrIHdlIG5lZWQgZmxhdHBhayA+PSAxLjUuMSBvbiB0aGUgaG9zdCBhbmQg
ZmxhdHBhay14ZGctdXRpbHMgPiAxLjAuMSBpbiB0aGUgc2FuZGJveAorICAgIEdSZWZQdHI8R1N1
YnByb2Nlc3M+IHByb2Nlc3MgPSBhZG9wdEdSZWYoZ19zdWJwcm9jZXNzX25ldyhzdGF0aWNfY2Fz
dDxHU3VicHJvY2Vzc0ZsYWdzPihHX1NVQlBST0NFU1NfRkxBR1NfU1RET1VUX1NJTEVOQ0UgfCBH
X1NVQlBST0NFU1NfRkxBR1NfU1RERVJSX1NJTEVOQ0UpLAorICAgICAgICBudWxscHRyLCAiZmxh
dHBhay1zcGF3biIsICItLXNhbmRib3giLCAiLS1zYW5kYm94LWV4cG9zZS1wYXRoLXJvPS90bXAi
LCAiZWNobyIsIG51bGxwdHIpKTsKKworICAgIGlmICghcHJvY2Vzcy5nZXQoKSkKKyAgICAgICAg
cmV0ID0gZmFsc2U7CisgICAgZWxzZQorICAgICAgICByZXQgPSBnX3N1YnByb2Nlc3Nfd2FpdF9j
aGVjayhwcm9jZXNzLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKKworICAgIHJldHVybiAqcmV0
OworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQlVCQkxFV1JBUF9TQU5EQk9YKQogc3RhdGljIGJv
b2wgaXNJbnNpZGVEb2NrZXIoKQogewpAQCAtNjcsNiArODgsNyBAQCBzdGF0aWMgYm9vbCBpc0lu
c2lkZUZsYXRwYWsoKQogICAgICAgICByZXR1cm4gKnJldDsKIAogICAgIHJldCA9IGdfZmlsZV90
ZXN0KCIvLmZsYXRwYWstaW5mbyIsIEdfRklMRV9URVNUX0VYSVNUUyk7CisgICAgLy8gRklYTUU6
IGJ1aWxkIGVudmlyb25tZW50IG9yIHJ1bnRpbWUKICAgICByZXR1cm4gKnJldDsKIH0KIApAQCAt
MTYyLDE5ICsxODQsMjQgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQog
ICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdTdWJwcm9jZXNz
PiBwcm9jZXNzOwogCi0jaWYgRU5BQkxFKEJVQkJMRVdSQVBfU0FOREJPWCkKKyNpZiBPUyhMSU5V
WCkKICAgICBjb25zdCBjaGFyKiBzYW5kYm94RW52ID0gZ19nZXRlbnYoIldFQktJVF9GT1JDRV9T
QU5EQk9YIik7CiAgICAgYm9vbCBzYW5kYm94RW5hYmxlZCA9IG1fbGF1bmNoT3B0aW9ucy5leHRy
YUluaXRpYWxpemF0aW9uRGF0YS5nZXQoImVuYWJsZS1zYW5kYm94IikgPT0gInRydWUiOwogCiAg
ICAgaWYgKHNhbmRib3hFbnYpCiAgICAgICAgIHNhbmRib3hFbmFibGVkID0gIXN0cmNtcChzYW5k
Ym94RW52LCAiMSIpOwogCisKKyAgICBpZiAoc2FuZGJveEVuYWJsZWQgJiYgaXNGbGF0cGFrU3Bh
d25Vc2FibGUoKSkKKyAgICAgICAgcHJvY2VzcyA9IGZsYXRwYWtTcGF3bihsYXVuY2hlci5nZXQo
KSwgbV9sYXVuY2hPcHRpb25zLCBhcmd2LCBzb2NrZXRQYWlyLmNsaWVudCwgJmVycm9yLm91dFB0
cigpKTsKKyNpZiBFTkFCTEUoQlVCQkxFV1JBUF9TQU5EQk9YKQogICAgIC8vIFlvdSBjYW5ub3Qg
dXNlIGJ1YmJsZXdyYXAgd2l0aGluIEZsYXRwYWsgb3IgRG9ja2VyIHNvIGxldHMgZW5zdXJlIGl0
IG5ldmVyIGhhcHBlbnMuCiAgICAgLy8gU25hcCBjYW4gYWxsb3cgaXQgYnV0IGhhcyBpdHMgb3du
IGxpbWl0YXRpb25zIHRoYXQgcmVxdWlyZSB3b3JrYXJvdW5kcy4KLSAgICBpZiAoc2FuZGJveEVu
YWJsZWQgJiYgIWlzSW5zaWRlRmxhdHBhaygpICYmICFpc0luc2lkZVNuYXAoKSAmJiAhaXNJbnNp
ZGVEb2NrZXIoKSkKKyAgICBlbHNlIGlmIChzYW5kYm94RW5hYmxlZCAmJiAhaXNJbnNpZGVGbGF0
cGFrKCkgJiYgIWlzSW5zaWRlU25hcCgpICYmICFpc0luc2lkZURvY2tlcigpKQogICAgICAgICBw
cm9jZXNzID0gYnViYmxld3JhcFNwYXduKGxhdW5jaGVyLmdldCgpLCBtX2xhdW5jaE9wdGlvbnMs
IGFyZ3YsICZlcnJvci5vdXRQdHIoKSk7CisjZW5kaWYgLy8gRU5BQkxFKEJVQkJMRVdSQVBfU0FO
REJPWCkKICAgICBlbHNlCi0jZW5kaWYKKyNlbmRpZiAvLyBPUyhMSU5VWCkKICAgICAgICAgcHJv
Y2VzcyA9IGFkb3B0R1JlZihnX3N1YnByb2Nlc3NfbGF1bmNoZXJfc3Bhd252KGxhdW5jaGVyLmdl
dCgpLCBhcmd2LCAmZXJyb3Iub3V0UHRyKCkpKTsKIAogICAgIGlmICghcHJvY2Vzcy5nZXQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388009</attachid>
            <date>2020-01-16 21:28:16 -0800</date>
            <delta_ts>2020-02-06 08:47:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204732-20200116212816.patch</filename>
            <type>text/plain</type>
            <size>11321</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3ODliMmUyZDNhZmJhZGFh
ZmFjZWRkYzI4Y2EwNThlZTQ2MWVhMDEuLjQ0YjI4MmMxYmVhZTY4N2JjZDhjOWEzNTE4N2U0ZWVj
MTdhZTc5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTItMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBSZS1h
ZGQgZmxhdHBhayBzYW5kYm94IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDczMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgYnJpbmdzIGJhY2sgdGhlIEZsYXRwYWsgYmFzZWQgc2Fu
ZGJveCBub3cgdGhhdCB1cHN0cmVhbSBoYXMgYWRkZWQKKyAgICAgICAgZmVhdHVyZXMgdG8gdGhl
aXIgc3Bhd24gcG9ydGFsIHRvIGFjY29tb2RhdGUgb3VyIG5lZWRzLgorCisgICAgICAgICogU291
cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OmZsYXRwYWtTcGF3bik6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIv
RmxhdHBha0xhdW5jaGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9n
bGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc0ZsYXRwYWtT
cGF3blVzYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OmlzSW5zaWRlRmxhdHBhayk6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisKIDIwMTktMTItMTcg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgYnVpbGQgZml4IGFmdGVyIHIyNTM2NjEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCAxYTA1ZTMz
NDM0M2RiOGRmYjUyNTQxOGM1Zjg0NzIyZWQ0NWYxNTQ4Li5kZDY2ZmNkMzQ1NjY3MDhiYWE5ZWM3
ZDMyYjgwNjIxZjFhZThiNDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTIxMSw2ICsyMTEsNyBA
QCBVSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKIAogVUlQ
cm9jZXNzL0xhdW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAgQG5vLXVuaWZ5CiBV
SVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwIEBuby11bmlmeQor
VUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcCBAbm8tdW5pZnkKIAog
VUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50
eHQKaW5kZXggM2QyMDBmYTYwZTlmZTY5NjhjOTJkNWEwZDdiNDU4ZWZhNGI0NjEzMC4uOGEwMGI1
ZjRiYzg4ODc0M2U5MDg2NDgyZjM2NjJkNmYzMGE4YWFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBA
IC0xOTEsNiArMTkxLDcgQEAgVUlQcm9jZXNzL2dsaWIvV2Vic2l0ZURhdGFTdG9yZUdMaWIuY3Bw
IEBuby11bmlmeQogCiBVSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGli
LmNwcAogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcAorVUlQ
cm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcAogCiBVSVByb2Nlc3MvUGx1
Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy91bml4
L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGNkZTFlOWExZTFmM2E5YmJhYTg5OTk0YWRiNzY4ODY3YTk3OTFkNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVy
LmNwcApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGbGF0cGFrTGF1
bmNoZXIuaCIKKworI2lmIE9TKExJTlVYKQorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0dSZWZQ
dHI8R1N1YnByb2Nlc3M+IGZsYXRwYWtTcGF3bihHU3VicHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hl
ciwgY29uc3QgV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9w
dGlvbnMsIGNoYXIqKiBhcmd2LCBpbnQgY2hpbGRQcm9jZXNzU29ja2V0LCBHRXJyb3IqKiBlcnJv
cikKK3sKKyAgICBBU1NFUlQobGF1bmNoZXIpOworCisgICAgLy8gV2hlbiB3ZSBhcmUgcnVubmlu
ZyBpbnNpZGUgb2YgZmxhdHBhaydzIHNhbmRib3ggd2UgZG8gbm90IGhhdmUgcGVybWlzc2lvbnMg
dG8gdXNlIHRoZSBzYW1lCisgICAgLy8gYnViYmxld3JhcCBzYW5kYm94IHdlIGRvIG91dHNpZGUg
YnV0IGZsYXRwYWsgb2ZmZXJzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBuZXcgc2FuZGJveGVzCisg
ICAgLy8gZm9yIHVzIHVzaW5nIGZsYXRwYWstc3Bhd24uCisKKyAgICBHVW5pcXVlUHRyPGdjaGFy
PiBjaGlsZFByb2Nlc3NTb2NrZXRBcmcoZ19zdHJkdXBfcHJpbnRmKCItLWZvcndhcmQtZmQ9JWQi
LCBjaGlsZFByb2Nlc3NTb2NrZXQpKTsKKyAgICBWZWN0b3I8Q1N0cmluZz4gZmxhdHBha0FyZ3Mg
PSB7CisgICAgICAgICJmbGF0cGFrLXNwYXduIiwKKyAgICAgICAgY2hpbGRQcm9jZXNzU29ja2V0
QXJnLmdldCgpLAorICAgICAgICAiLS13YXRjaC1idXMiCisgICAgfTsKKworICAgIGlmIChsYXVu
Y2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Oldl
YikgeworICAgICAgICBmbGF0cGFrQXJncy5hcHBlbmRWZWN0b3IoVmVjdG9yPENTdHJpbmc+KHsK
KyAgICAgICAgICAgICItLXNhbmRib3giLAorICAgICAgICAgICAgIi0tbm8tbmV0d29yayIsCisg
ICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9c2hhcmUtZ3B1IiwKKyAgICAgICAgICAgICItLXNh
bmRib3gtZmxhZz1zaGFyZS1kaXNwbGF5IiwKKyAgICAgICAgICAgICItLXNhbmRib3gtZmxhZz1z
aGFyZS1zb3VuZCIsCisgICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9YWxsb3ctYTExeSIsCisg
ICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9YWxsb3ctZGJ1cyIsIC8vIE5vdGUgdGhhdCB0aGlz
IG9ubHkgYWxsb3dzIHBvcnRhbHMgYW5kICRhcHBpZC5TYW5kYm94LiogYWNjZXNzCisgICAgICAg
IH0pKTsKKworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdGhBbmRQZXJtaXNzaW9uIDogbGF1
bmNoT3B0aW9ucy5leHRyYVdlYlByb2Nlc3NTYW5kYm94UGF0aHMpIHsKKyAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGZvcm1hdFN0cmluZyA9IHBhdGhBbmRQZXJtaXNzaW9uLnZhbHVlID09IFNhbmRi
b3hQZXJtaXNzaW9uOjpSZWFkT25seSA/ICItLXNhbmRib3gtZXhwb3NlLXBhdGgtcm89JXMiOiAi
LS1zYW5kYm94LWV4cG9zZS1wYXRoPSVzIjsKKyAgICAgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IHBhdGhBcmcoZ19zdHJkdXBfcHJpbnRmKGZvcm1hdFN0cmluZywgcGF0aEFuZFBlcm1pc3Npb24u
a2V5LmRhdGEoKSkpOworICAgICAgICAgICAgZmxhdHBha0FyZ3MuYXBwZW5kKHBhdGhBcmcuZ2V0
KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgY2hhcioqIG5ld0FyZ3YgPSBnX25ld2EoY2hh
ciosIGdfc3Rydl9sZW5ndGgoYXJndikgKyBmbGF0cGFrQXJncy5zaXplKCkgKyAxKTsKKyAgICBz
aXplX3QgaSA9IDA7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFyZyA6IGZsYXRwYWtBcmdzKQor
ICAgICAgICBuZXdBcmd2W2krK10gPSBjb25zdF9jYXN0PGNoYXIqPihhcmcuZGF0YSgpKTsKKyAg
ICBmb3IgKHNpemVfdCB4ID0gMDsgYXJndlt4XTsgeCsrKQorICAgICAgICBuZXdBcmd2W2krK10g
PSBhcmd2W3hdOworICAgIG5ld0FyZ3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICByZXR1cm4gYWRv
cHRHUmVmKGdfc3VicHJvY2Vzc19sYXVuY2hlcl9zcGF3bnYobGF1bmNoZXIsIG5ld0FyZ3YsIGVy
cm9yKSk7Cit9CisKK307CisKKyNlbmRpZiAvLyBPUyhMSU5VWCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhM2JlMGE4NzU4ZTQ0MGJlNmFhZDY3MzVmZTQyOGFlZjQwZWZiY2IKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtM
YXVuY2hlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBPUyhMSU5VWCkKKworI2lu
Y2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorCit0eXBlZGVmIHN0cnVjdCBfR1N1YnByb2Nlc3MgR1N1YnByb2Nlc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR1N1YnByb2Nlc3NMYXVuY2hlciBHU3VicHJvY2Vzc0xhdW5jaGVyOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworR1JlZlB0cjxHU3VicHJvY2Vzcz4gZmxhdHBha1NwYXduKEdTdWJwcm9j
ZXNzTGF1bmNoZXIqLCBjb25zdCBXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYsIGNoYXIqKiBhcmd2LCBpbnQgY2hpbGRQcm9jZXNzU29ja2V0LCBHRXJyb3IqKik7CisKK307
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAKaW5kZXggZDkwNmQ4ZGM4N2Y1YzYy
ZTU2NjZmMGQ3ZDBjYWI1ZDA4ODc0MGQ5Mi4uMGE0NmFlMWNiMjg0YjNjOGViODM1Yjg0NDI5NDM3
ZWYwNTA1MzVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9nbGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNpbmNsdWRlICJCdWJibGV3cmFwTGF1bmNoZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiRmxhdHBha0xhdW5jaGVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgpAQCAt
NDksNiArNTAsMzYgQEAgc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1bmN0aW9uKGdwb2ludGVyIHVz
ZXJEYXRhKQogICAgIGNsb3NlKHNvY2tldCk7CiB9CiAKKyNpZiBPUyhMSU5VWCkKK3N0YXRpYyBi
b29sIGlzRmxhdHBha1NwYXduVXNhYmxlKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKKyAgICBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gcmV0Owor
ICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiAqcmV0OworCisgICAgLy8gVGhlIEZsYXRwYWsg
c2FuZGJveCBoYXMgbW9yZSBzdHJpY3QgbGltaXRhdGlvbnMgb24gZmlsZXN5c3RlbSBhY2Nlc3Ms
IHdlIGNhbid0IHJlYXNvbmFibHkga25vdworICAgIC8vIGFoZWFkIG9mIHRpbWUgaWYgYSBwYXRo
IHdpbGwgd29yayBidXQgd2UgZG8ga25vdyBmb3IgYSBmYWN0IGAvdG1wYCB3aWxsIG5vdCBhbmQg
dGhhdCBFcGlwaGFueSAzLjM0CisgICAgLy8gcmVxdWlyZWQgYC90bXBgIHNvIGxldHMga2VlcCBp
dCB3b3JraW5nLgorICAgIGZvciAoY29uc3QgYXV0byYgcGF0aEFuZFBlcm1pc3Npb24gOiBsYXVu
Y2hPcHRpb25zLmV4dHJhV2ViUHJvY2Vzc1NhbmRib3hQYXRocykgeworICAgICAgICBpZiAoZ19z
dHJfaGFzX3ByZWZpeChwYXRoQW5kUGVybWlzc2lvbi5rZXkuZGF0YSgpLCAiL3RtcCIpKSB7Cisg
ICAgICAgICAgICByZXQgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiAqcmV0OworICAgICAg
ICB9CisgICAgfQorCisgICAgLy8gRm9yIG91ciB1c2FnZSB0byB3b3JrIHdlIG5lZWQgZmxhdHBh
ayA+PSAxLjUuMiBvbiB0aGUgaG9zdCBhbmQgZmxhdHBhay14ZGctdXRpbHMgPiAxLjAuMSBpbiB0
aGUgc2FuZGJveAorICAgIEdSZWZQdHI8R1N1YnByb2Nlc3M+IHByb2Nlc3MgPSBhZG9wdEdSZWYo
Z19zdWJwcm9jZXNzX25ldyhzdGF0aWNfY2FzdDxHU3VicHJvY2Vzc0ZsYWdzPihHX1NVQlBST0NF
U1NfRkxBR1NfU1RET1VUX1NJTEVOQ0UgfCBHX1NVQlBST0NFU1NfRkxBR1NfU1RERVJSX1NJTEVO
Q0UpLAorICAgICAgICBudWxscHRyLCAiZmxhdHBhay1zcGF3biIsICItLXNhbmRib3giLCAiLS1z
YW5kYm94LWV4cG9zZS1wYXRoLXJvLXRyeT0vdGhpc19wYXRoX2RvZXNudF9leGlzdCIsICJlY2hv
IiwgbnVsbHB0cikpOworCisgICAgaWYgKCFwcm9jZXNzLmdldCgpKQorICAgICAgICByZXQgPSBm
YWxzZTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IGdfc3VicHJvY2Vzc193YWl0X2NoZWNrKHBy
b2Nlc3MuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpOworCisgICAgcmV0dXJuICpyZXQ7Cit9Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShCVUJCTEVXUkFQX1NBTkRCT1gpCiBzdGF0aWMgYm9vbCBpc0lu
c2lkZURvY2tlcigpCiB7CkBAIC0xNjIsMTkgKzE5MywyNCBAQCB2b2lkIFByb2Nlc3NMYXVuY2hl
cjo6bGF1bmNoUHJvY2VzcygpCiAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAg
IEdSZWZQdHI8R1N1YnByb2Nlc3M+IHByb2Nlc3M7CiAKLSNpZiBFTkFCTEUoQlVCQkxFV1JBUF9T
QU5EQk9YKQorI2lmIE9TKExJTlVYKQogICAgIGNvbnN0IGNoYXIqIHNhbmRib3hFbnYgPSBnX2dl
dGVudigiV0VCS0lUX0ZPUkNFX1NBTkRCT1giKTsKICAgICBib29sIHNhbmRib3hFbmFibGVkID0g
bV9sYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgiZW5hYmxlLXNhbmRi
b3giKSA9PSAidHJ1ZSI7CiAKICAgICBpZiAoc2FuZGJveEVudikKICAgICAgICAgc2FuZGJveEVu
YWJsZWQgPSAhc3RyY21wKHNhbmRib3hFbnYsICIxIik7CiAKKworICAgIGlmIChzYW5kYm94RW5h
YmxlZCAmJiBpc0ZsYXRwYWtTcGF3blVzYWJsZShtX2xhdW5jaE9wdGlvbnMpKQorICAgICAgICBw
cm9jZXNzID0gZmxhdHBha1NwYXduKGxhdW5jaGVyLmdldCgpLCBtX2xhdW5jaE9wdGlvbnMsIGFy
Z3YsIHNvY2tldFBhaXIuY2xpZW50LCAmZXJyb3Iub3V0UHRyKCkpOworI2lmIEVOQUJMRShCVUJC
TEVXUkFQX1NBTkRCT1gpCiAgICAgLy8gWW91IGNhbm5vdCB1c2UgYnViYmxld3JhcCB3aXRoaW4g
RmxhdHBhayBvciBEb2NrZXIgc28gbGV0cyBlbnN1cmUgaXQgbmV2ZXIgaGFwcGVucy4KICAgICAv
LyBTbmFwIGNhbiBhbGxvdyBpdCBidXQgaGFzIGl0cyBvd24gbGltaXRhdGlvbnMgdGhhdCByZXF1
aXJlIHdvcmthcm91bmRzLgotICAgIGlmIChzYW5kYm94RW5hYmxlZCAmJiAhaXNJbnNpZGVGbGF0
cGFrKCkgJiYgIWlzSW5zaWRlU25hcCgpICYmICFpc0luc2lkZURvY2tlcigpKQorICAgIGVsc2Ug
aWYgKHNhbmRib3hFbmFibGVkICYmICFpc0luc2lkZUZsYXRwYWsoKSAmJiAhaXNJbnNpZGVTbmFw
KCkgJiYgIWlzSW5zaWRlRG9ja2VyKCkpCiAgICAgICAgIHByb2Nlc3MgPSBidWJibGV3cmFwU3Bh
d24obGF1bmNoZXIuZ2V0KCksIG1fbGF1bmNoT3B0aW9ucywgYXJndiwgJmVycm9yLm91dFB0cigp
KTsKKyNlbmRpZiAvLyBFTkFCTEUoQlVCQkxFV1JBUF9TQU5EQk9YKQogICAgIGVsc2UKLSNlbmRp
ZgorI2VuZGlmIC8vIE9TKExJTlVYKQogICAgICAgICBwcm9jZXNzID0gYWRvcHRHUmVmKGdfc3Vi
cHJvY2Vzc19sYXVuY2hlcl9zcGF3bnYobGF1bmNoZXIuZ2V0KCksIGFyZ3YsICZlcnJvci5vdXRQ
dHIoKSkpOwogCiAgICAgaWYgKCFwcm9jZXNzLmdldCgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389961</attachid>
            <date>2020-02-06 08:47:51 -0800</date>
            <delta_ts>2020-02-06 08:50:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204732-20200206084750.patch</filename>
            <type>text/plain</type>
            <size>11427</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3ODliMmUyZDNhZmJhZGFh
ZmFjZWRkYzI4Y2EwNThlZTQ2MWVhMDEuLjQ0YjI4MmMxYmVhZTY4N2JjZDhjOWEzNTE4N2U0ZWVj
MTdhZTc5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTItMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBSZS1h
ZGQgZmxhdHBhayBzYW5kYm94IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDczMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgYnJpbmdzIGJhY2sgdGhlIEZsYXRwYWsgYmFzZWQgc2Fu
ZGJveCBub3cgdGhhdCB1cHN0cmVhbSBoYXMgYWRkZWQKKyAgICAgICAgZmVhdHVyZXMgdG8gdGhl
aXIgc3Bhd24gcG9ydGFsIHRvIGFjY29tb2RhdGUgb3VyIG5lZWRzLgorCisgICAgICAgICogU291
cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OmZsYXRwYWtTcGF3bik6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIv
RmxhdHBha0xhdW5jaGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9n
bGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc0ZsYXRwYWtT
cGF3blVzYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OmlzSW5zaWRlRmxhdHBhayk6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisKIDIwMTktMTItMTcg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgYnVpbGQgZml4IGFmdGVyIHIyNTM2NjEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCAxYTA1ZTMz
NDM0M2RiOGRmYjUyNTQxOGM1Zjg0NzIyZWQ0NWYxNTQ4Li5kZDY2ZmNkMzQ1NjY3MDhiYWE5ZWM3
ZDMyYjgwNjIxZjFhZThiNDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTIxMSw2ICsyMTEsNyBA
QCBVSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKIAogVUlQ
cm9jZXNzL0xhdW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAgQG5vLXVuaWZ5CiBV
SVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwIEBuby11bmlmeQor
VUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcCBAbm8tdW5pZnkKIAog
VUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50
eHQKaW5kZXggM2QyMDBmYTYwZTlmZTY5NjhjOTJkNWEwZDdiNDU4ZWZhNGI0NjEzMC4uOGEwMGI1
ZjRiYzg4ODc0M2U5MDg2NDgyZjM2NjJkNmYzMGE4YWFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBA
IC0xOTEsNiArMTkxLDcgQEAgVUlQcm9jZXNzL2dsaWIvV2Vic2l0ZURhdGFTdG9yZUdMaWIuY3Bw
IEBuby11bmlmeQogCiBVSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGli
LmNwcAogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcAorVUlQ
cm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcAogCiBVSVByb2Nlc3MvUGx1
Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy91bml4
L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWMwZjQ0YWY2YWUyMzllMTA5YWFhYmVlZGU0Yzc3YmE1YTIwMTMzMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVy
LmNwcApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGbGF0cGFrTGF1
bmNoZXIuaCIKKworI2lmIE9TKExJTlVYKQorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0dSZWZQ
dHI8R1N1YnByb2Nlc3M+IGZsYXRwYWtTcGF3bihHU3VicHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hl
ciwgY29uc3QgV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9w
dGlvbnMsIGNoYXIqKiBhcmd2LCBpbnQgY2hpbGRQcm9jZXNzU29ja2V0LCBHRXJyb3IqKiBlcnJv
cikKK3sKKyAgICBBU1NFUlQobGF1bmNoZXIpOworCisgICAgLy8gV2hlbiB3ZSBhcmUgcnVubmlu
ZyBpbnNpZGUgb2YgZmxhdHBhaydzIHNhbmRib3ggd2UgZG8gbm90IGhhdmUgcGVybWlzc2lvbnMg
dG8gdXNlIHRoZSBzYW1lCisgICAgLy8gYnViYmxld3JhcCBzYW5kYm94IHdlIGRvIG91dHNpZGUg
YnV0IGZsYXRwYWsgb2ZmZXJzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBuZXcgc2FuZGJveGVzCisg
ICAgLy8gZm9yIHVzIHVzaW5nIGZsYXRwYWstc3Bhd24uCisKKyAgICBHVW5pcXVlUHRyPGdjaGFy
PiBjaGlsZFByb2Nlc3NTb2NrZXRBcmcoZ19zdHJkdXBfcHJpbnRmKCItLWZvcndhcmQtZmQ9JWQi
LCBjaGlsZFByb2Nlc3NTb2NrZXQpKTsKKyAgICBWZWN0b3I8Q1N0cmluZz4gZmxhdHBha0FyZ3Mg
PSB7CisgICAgICAgICJmbGF0cGFrLXNwYXduIiwKKyAgICAgICAgY2hpbGRQcm9jZXNzU29ja2V0
QXJnLmdldCgpLAorICAgICAgICAiLS13YXRjaC1idXMiCisgICAgfTsKKworICAgIGlmIChsYXVu
Y2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Oldl
YikgeworICAgICAgICBmbGF0cGFrQXJncy5hcHBlbmRWZWN0b3IoVmVjdG9yPENTdHJpbmc+KHsK
KyAgICAgICAgICAgICItLXNhbmRib3giLAorICAgICAgICAgICAgIi0tbm8tbmV0d29yayIsCisg
ICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9c2hhcmUtZ3B1IiwKKyAgICAgICAgICAgICItLXNh
bmRib3gtZmxhZz1zaGFyZS1kaXNwbGF5IiwKKyAgICAgICAgICAgICItLXNhbmRib3gtZmxhZz1z
aGFyZS1zb3VuZCIsCisgICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9YWxsb3ctYTExeSIsCisg
ICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9YWxsb3ctZGJ1cyIsIC8vIE5vdGUgdGhhdCB0aGlz
IG9ubHkgYWxsb3dzIHBvcnRhbHMgYW5kICRhcHBpZC5TYW5kYm94LiogYWNjZXNzCisgICAgICAg
IH0pKTsKKworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdGhBbmRQZXJtaXNzaW9uIDogbGF1
bmNoT3B0aW9ucy5leHRyYVdlYlByb2Nlc3NTYW5kYm94UGF0aHMpIHsKKyAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGZvcm1hdFN0cmluZyA9IHBhdGhBbmRQZXJtaXNzaW9uLnZhbHVlID09IFNhbmRi
b3hQZXJtaXNzaW9uOjpSZWFkT25seSA/ICItLXNhbmRib3gtZXhwb3NlLXBhdGgtcm89JXMiOiAi
LS1zYW5kYm94LWV4cG9zZS1wYXRoPSVzIjsKKyAgICAgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IHBhdGhBcmcoZ19zdHJkdXBfcHJpbnRmKGZvcm1hdFN0cmluZywgcGF0aEFuZFBlcm1pc3Npb24u
a2V5LmRhdGEoKSkpOworICAgICAgICAgICAgZmxhdHBha0FyZ3MuYXBwZW5kKHBhdGhBcmcuZ2V0
KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgY2hhcioqIG5ld0FyZ3YgPSBnX25ld2EoY2hh
ciosIGdfc3Rydl9sZW5ndGgoYXJndikgKyBmbGF0cGFrQXJncy5zaXplKCkgKyAxKTsKKyAgICBz
aXplX3QgaSA9IDA7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFyZyA6IGZsYXRwYWtBcmdzKQor
ICAgICAgICBuZXdBcmd2W2krK10gPSBjb25zdF9jYXN0PGNoYXIqPihhcmcuZGF0YSgpKTsKKyAg
ICBmb3IgKHNpemVfdCB4ID0gMDsgYXJndlt4XTsgeCsrKQorICAgICAgICBuZXdBcmd2W2krK10g
PSBhcmd2W3hdOworICAgIG5ld0FyZ3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICByZXR1cm4gYWRv
cHRHUmVmKGdfc3VicHJvY2Vzc19sYXVuY2hlcl9zcGF3bnYobGF1bmNoZXIsIG5ld0FyZ3YsIGVy
cm9yKSk7Cit9CisKK307CisKKyNlbmRpZiAvLyBPUyhMSU5VWCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiNWE3NjZkMTVlN2Q1ZThmNmRiNTI1MzQ1YjcwZjM2MmFhOGQ2ZGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtM
YXVuY2hlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBPUyhMSU5VWCkKKworI2lu
Y2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorCit0eXBlZGVmIHN0cnVjdCBfR1N1YnByb2Nlc3MgR1N1YnByb2Nlc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR1N1YnByb2Nlc3NMYXVuY2hlciBHU3VicHJvY2Vzc0xhdW5jaGVyOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworR1JlZlB0cjxHU3VicHJvY2Vzcz4gZmxhdHBha1NwYXduKEdTdWJwcm9j
ZXNzTGF1bmNoZXIqLCBjb25zdCBXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYsIGNoYXIqKiBhcmd2LCBpbnQgY2hpbGRQcm9jZXNzU29ja2V0LCBHRXJyb3IqKik7CisKK307
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAKaW5kZXggZDkwNmQ4ZGM4N2Y1YzYy
ZTU2NjZmMGQ3ZDBjYWI1ZDA4ODc0MGQ5Mi4uZjU0OTIxNDkxYWUwNzZlNWQwMzJiNjQ3ODdlN2Zm
OTc4NWMyN2VjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9nbGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNpbmNsdWRlICJCdWJibGV3cmFwTGF1bmNoZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiRmxhdHBha0xhdW5jaGVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgpAQCAt
NDksNiArNTAsMzcgQEAgc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1bmN0aW9uKGdwb2ludGVyIHVz
ZXJEYXRhKQogICAgIGNsb3NlKHNvY2tldCk7CiB9CiAKKyNpZiBPUyhMSU5VWCkKK3N0YXRpYyBi
b29sIGlzRmxhdHBha1NwYXduVXNhYmxlKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKKyAgICBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gcmV0Owor
ICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiAqcmV0OworCisgICAgLy8gVGhlIEZsYXRwYWsg
c2FuZGJveCBoYXMgbW9yZSBzdHJpY3QgbGltaXRhdGlvbnMgb24gZmlsZXN5c3RlbSBhY2Nlc3Ms
IHdlIGNhbid0IHJlYXNvbmFibHkga25vdworICAgIC8vIGFoZWFkIG9mIHRpbWUgaWYgYSBwYXRo
IHdpbGwgd29yayBidXQgd2UgZG8ga25vdyBmb3IgYSBmYWN0IGAvdG1wYCB3aWxsIG5vdCBhbmQg
dGhhdCBFcGlwaGFueSAzLjM0CisgICAgLy8gcmVxdWlyZWQgYC90bXBgIHNvIGxldHMga2VlcCBp
dCB3b3JraW5nLgorICAgIGZvciAoY29uc3QgYXV0byYgcGF0aEFuZFBlcm1pc3Npb24gOiBsYXVu
Y2hPcHRpb25zLmV4dHJhV2ViUHJvY2Vzc1NhbmRib3hQYXRocykgeworICAgICAgICBpZiAoZ19z
dHJfaGFzX3ByZWZpeChwYXRoQW5kUGVybWlzc2lvbi5rZXkuZGF0YSgpLCAiL3RtcCIpKSB7Cisg
ICAgICAgICAgICBnX3dhcm5pbmcoImZsYXRwYWstc3Bhd24gc2FuZGJveCBpcyBkaXNhYmxlZCBi
ZWNhdXNlIHVuc3VwcG9ydGVkIHBhdGhzIHdlcmUgcmVxdWVzdGVkICgvdG1wKSIpCisgICAgICAg
ICAgICByZXQgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiAqcmV0OworICAgICAgICB9Cisg
ICAgfQorCisgICAgLy8gRm9yIG91ciB1c2FnZSB0byB3b3JrIHdlIG5lZWQgZmxhdHBhayA+PSAx
LjUuMiBvbiB0aGUgaG9zdCBhbmQgZmxhdHBhay14ZGctdXRpbHMgPiAxLjAuMSBpbiB0aGUgc2Fu
ZGJveAorICAgIEdSZWZQdHI8R1N1YnByb2Nlc3M+IHByb2Nlc3MgPSBhZG9wdEdSZWYoZ19zdWJw
cm9jZXNzX25ldyhzdGF0aWNfY2FzdDxHU3VicHJvY2Vzc0ZsYWdzPihHX1NVQlBST0NFU1NfRkxB
R1NfU1RET1VUX1NJTEVOQ0UgfCBHX1NVQlBST0NFU1NfRkxBR1NfU1RERVJSX1NJTEVOQ0UpLAor
ICAgICAgICBudWxscHRyLCAiZmxhdHBhay1zcGF3biIsICItLXNhbmRib3giLCAiLS1zYW5kYm94
LWV4cG9zZS1wYXRoLXJvLXRyeT0vdGhpc19wYXRoX2RvZXNudF9leGlzdCIsICJlY2hvIiwgbnVs
bHB0cikpOworCisgICAgaWYgKCFwcm9jZXNzLmdldCgpKQorICAgICAgICByZXQgPSBmYWxzZTsK
KyAgICBlbHNlCisgICAgICAgIHJldCA9IGdfc3VicHJvY2Vzc193YWl0X2NoZWNrKHByb2Nlc3Mu
Z2V0KCksIG51bGxwdHIsIG51bGxwdHIpOworCisgICAgcmV0dXJuICpyZXQ7Cit9CisjZW5kaWYK
KwogI2lmIEVOQUJMRShCVUJCTEVXUkFQX1NBTkRCT1gpCiBzdGF0aWMgYm9vbCBpc0luc2lkZURv
Y2tlcigpCiB7CkBAIC0xNjIsMTkgKzE5NCwyMyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1
bmNoUHJvY2VzcygpCiAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAgIEdSZWZQ
dHI8R1N1YnByb2Nlc3M+IHByb2Nlc3M7CiAKLSNpZiBFTkFCTEUoQlVCQkxFV1JBUF9TQU5EQk9Y
KQorI2lmIE9TKExJTlVYKQogICAgIGNvbnN0IGNoYXIqIHNhbmRib3hFbnYgPSBnX2dldGVudigi
V0VCS0lUX0ZPUkNFX1NBTkRCT1giKTsKICAgICBib29sIHNhbmRib3hFbmFibGVkID0gbV9sYXVu
Y2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdldCgiZW5hYmxlLXNhbmRib3giKSA9
PSAidHJ1ZSI7CiAKICAgICBpZiAoc2FuZGJveEVudikKICAgICAgICAgc2FuZGJveEVuYWJsZWQg
PSAhc3RyY21wKHNhbmRib3hFbnYsICIxIik7CiAKKyAgICBpZiAoc2FuZGJveEVuYWJsZWQgJiYg
aXNGbGF0cGFrU3Bhd25Vc2FibGUobV9sYXVuY2hPcHRpb25zKSkKKyAgICAgICAgcHJvY2VzcyA9
IGZsYXRwYWtTcGF3bihsYXVuY2hlci5nZXQoKSwgbV9sYXVuY2hPcHRpb25zLCBhcmd2LCBzb2Nr
ZXRQYWlyLmNsaWVudCwgJmVycm9yLm91dFB0cigpKTsKKyNpZiBFTkFCTEUoQlVCQkxFV1JBUF9T
QU5EQk9YKQogICAgIC8vIFlvdSBjYW5ub3QgdXNlIGJ1YmJsZXdyYXAgd2l0aGluIEZsYXRwYWsg
b3IgRG9ja2VyIHNvIGxldHMgZW5zdXJlIGl0IG5ldmVyIGhhcHBlbnMuCiAgICAgLy8gU25hcCBj
YW4gYWxsb3cgaXQgYnV0IGhhcyBpdHMgb3duIGxpbWl0YXRpb25zIHRoYXQgcmVxdWlyZSB3b3Jr
YXJvdW5kcy4KLSAgICBpZiAoc2FuZGJveEVuYWJsZWQgJiYgIWlzSW5zaWRlRmxhdHBhaygpICYm
ICFpc0luc2lkZVNuYXAoKSAmJiAhaXNJbnNpZGVEb2NrZXIoKSkKKyAgICBlbHNlIGlmIChzYW5k
Ym94RW5hYmxlZCAmJiAhaXNJbnNpZGVGbGF0cGFrKCkgJiYgIWlzSW5zaWRlU25hcCgpICYmICFp
c0luc2lkZURvY2tlcigpKQogICAgICAgICBwcm9jZXNzID0gYnViYmxld3JhcFNwYXduKGxhdW5j
aGVyLmdldCgpLCBtX2xhdW5jaE9wdGlvbnMsIGFyZ3YsICZlcnJvci5vdXRQdHIoKSk7CisjZW5k
aWYgLy8gRU5BQkxFKEJVQkJMRVdSQVBfU0FOREJPWCkKICAgICBlbHNlCi0jZW5kaWYKKyNlbmRp
ZiAvLyBPUyhMSU5VWCkKICAgICAgICAgcHJvY2VzcyA9IGFkb3B0R1JlZihnX3N1YnByb2Nlc3Nf
bGF1bmNoZXJfc3Bhd252KGxhdW5jaGVyLmdldCgpLCBhcmd2LCAmZXJyb3Iub3V0UHRyKCkpKTsK
IAogICAgIGlmICghcHJvY2Vzcy5nZXQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389964</attachid>
            <date>2020-02-06 08:50:25 -0800</date>
            <delta_ts>2020-02-06 10:22:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204732-20200206085025.patch</filename>
            <type>text/plain</type>
            <size>11428</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3ODliMmUyZDNhZmJhZGFh
ZmFjZWRkYzI4Y2EwNThlZTQ2MWVhMDEuLjQ0YjI4MmMxYmVhZTY4N2JjZDhjOWEzNTE4N2U0ZWVj
MTdhZTc5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTItMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBSZS1h
ZGQgZmxhdHBhayBzYW5kYm94IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDczMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgYnJpbmdzIGJhY2sgdGhlIEZsYXRwYWsgYmFzZWQgc2Fu
ZGJveCBub3cgdGhhdCB1cHN0cmVhbSBoYXMgYWRkZWQKKyAgICAgICAgZmVhdHVyZXMgdG8gdGhl
aXIgc3Bhd24gcG9ydGFsIHRvIGFjY29tb2RhdGUgb3VyIG5lZWRzLgorCisgICAgICAgICogU291
cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OmZsYXRwYWtTcGF3bik6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIv
RmxhdHBha0xhdW5jaGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9n
bGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc0ZsYXRwYWtT
cGF3blVzYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OmlzSW5zaWRlRmxhdHBhayk6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisKIDIwMTktMTItMTcg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgYnVpbGQgZml4IGFmdGVyIHIyNTM2NjEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCAxYTA1ZTMz
NDM0M2RiOGRmYjUyNTQxOGM1Zjg0NzIyZWQ0NWYxNTQ4Li5kZDY2ZmNkMzQ1NjY3MDhiYWE5ZWM3
ZDMyYjgwNjIxZjFhZThiNDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTIxMSw2ICsyMTEsNyBA
QCBVSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKIAogVUlQ
cm9jZXNzL0xhdW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAgQG5vLXVuaWZ5CiBV
SVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwIEBuby11bmlmeQor
VUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcCBAbm8tdW5pZnkKIAog
VUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50
eHQKaW5kZXggM2QyMDBmYTYwZTlmZTY5NjhjOTJkNWEwZDdiNDU4ZWZhNGI0NjEzMC4uOGEwMGI1
ZjRiYzg4ODc0M2U5MDg2NDgyZjM2NjJkNmYzMGE4YWFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBA
IC0xOTEsNiArMTkxLDcgQEAgVUlQcm9jZXNzL2dsaWIvV2Vic2l0ZURhdGFTdG9yZUdMaWIuY3Bw
IEBuby11bmlmeQogCiBVSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGli
LmNwcAogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcAorVUlQ
cm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcAogCiBVSVByb2Nlc3MvUGx1
Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy91bml4
L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWMwZjQ0YWY2YWUyMzllMTA5YWFhYmVlZGU0Yzc3YmE1YTIwMTMzMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVy
LmNwcApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGbGF0cGFrTGF1
bmNoZXIuaCIKKworI2lmIE9TKExJTlVYKQorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0dSZWZQ
dHI8R1N1YnByb2Nlc3M+IGZsYXRwYWtTcGF3bihHU3VicHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hl
ciwgY29uc3QgV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9w
dGlvbnMsIGNoYXIqKiBhcmd2LCBpbnQgY2hpbGRQcm9jZXNzU29ja2V0LCBHRXJyb3IqKiBlcnJv
cikKK3sKKyAgICBBU1NFUlQobGF1bmNoZXIpOworCisgICAgLy8gV2hlbiB3ZSBhcmUgcnVubmlu
ZyBpbnNpZGUgb2YgZmxhdHBhaydzIHNhbmRib3ggd2UgZG8gbm90IGhhdmUgcGVybWlzc2lvbnMg
dG8gdXNlIHRoZSBzYW1lCisgICAgLy8gYnViYmxld3JhcCBzYW5kYm94IHdlIGRvIG91dHNpZGUg
YnV0IGZsYXRwYWsgb2ZmZXJzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBuZXcgc2FuZGJveGVzCisg
ICAgLy8gZm9yIHVzIHVzaW5nIGZsYXRwYWstc3Bhd24uCisKKyAgICBHVW5pcXVlUHRyPGdjaGFy
PiBjaGlsZFByb2Nlc3NTb2NrZXRBcmcoZ19zdHJkdXBfcHJpbnRmKCItLWZvcndhcmQtZmQ9JWQi
LCBjaGlsZFByb2Nlc3NTb2NrZXQpKTsKKyAgICBWZWN0b3I8Q1N0cmluZz4gZmxhdHBha0FyZ3Mg
PSB7CisgICAgICAgICJmbGF0cGFrLXNwYXduIiwKKyAgICAgICAgY2hpbGRQcm9jZXNzU29ja2V0
QXJnLmdldCgpLAorICAgICAgICAiLS13YXRjaC1idXMiCisgICAgfTsKKworICAgIGlmIChsYXVu
Y2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Oldl
YikgeworICAgICAgICBmbGF0cGFrQXJncy5hcHBlbmRWZWN0b3IoVmVjdG9yPENTdHJpbmc+KHsK
KyAgICAgICAgICAgICItLXNhbmRib3giLAorICAgICAgICAgICAgIi0tbm8tbmV0d29yayIsCisg
ICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9c2hhcmUtZ3B1IiwKKyAgICAgICAgICAgICItLXNh
bmRib3gtZmxhZz1zaGFyZS1kaXNwbGF5IiwKKyAgICAgICAgICAgICItLXNhbmRib3gtZmxhZz1z
aGFyZS1zb3VuZCIsCisgICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9YWxsb3ctYTExeSIsCisg
ICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9YWxsb3ctZGJ1cyIsIC8vIE5vdGUgdGhhdCB0aGlz
IG9ubHkgYWxsb3dzIHBvcnRhbHMgYW5kICRhcHBpZC5TYW5kYm94LiogYWNjZXNzCisgICAgICAg
IH0pKTsKKworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdGhBbmRQZXJtaXNzaW9uIDogbGF1
bmNoT3B0aW9ucy5leHRyYVdlYlByb2Nlc3NTYW5kYm94UGF0aHMpIHsKKyAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGZvcm1hdFN0cmluZyA9IHBhdGhBbmRQZXJtaXNzaW9uLnZhbHVlID09IFNhbmRi
b3hQZXJtaXNzaW9uOjpSZWFkT25seSA/ICItLXNhbmRib3gtZXhwb3NlLXBhdGgtcm89JXMiOiAi
LS1zYW5kYm94LWV4cG9zZS1wYXRoPSVzIjsKKyAgICAgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IHBhdGhBcmcoZ19zdHJkdXBfcHJpbnRmKGZvcm1hdFN0cmluZywgcGF0aEFuZFBlcm1pc3Npb24u
a2V5LmRhdGEoKSkpOworICAgICAgICAgICAgZmxhdHBha0FyZ3MuYXBwZW5kKHBhdGhBcmcuZ2V0
KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgY2hhcioqIG5ld0FyZ3YgPSBnX25ld2EoY2hh
ciosIGdfc3Rydl9sZW5ndGgoYXJndikgKyBmbGF0cGFrQXJncy5zaXplKCkgKyAxKTsKKyAgICBz
aXplX3QgaSA9IDA7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFyZyA6IGZsYXRwYWtBcmdzKQor
ICAgICAgICBuZXdBcmd2W2krK10gPSBjb25zdF9jYXN0PGNoYXIqPihhcmcuZGF0YSgpKTsKKyAg
ICBmb3IgKHNpemVfdCB4ID0gMDsgYXJndlt4XTsgeCsrKQorICAgICAgICBuZXdBcmd2W2krK10g
PSBhcmd2W3hdOworICAgIG5ld0FyZ3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICByZXR1cm4gYWRv
cHRHUmVmKGdfc3VicHJvY2Vzc19sYXVuY2hlcl9zcGF3bnYobGF1bmNoZXIsIG5ld0FyZ3YsIGVy
cm9yKSk7Cit9CisKK307CisKKyNlbmRpZiAvLyBPUyhMSU5VWCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiNWE3NjZkMTVlN2Q1ZThmNmRiNTI1MzQ1YjcwZjM2MmFhOGQ2ZGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtM
YXVuY2hlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBPUyhMSU5VWCkKKworI2lu
Y2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorCit0eXBlZGVmIHN0cnVjdCBfR1N1YnByb2Nlc3MgR1N1YnByb2Nlc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR1N1YnByb2Nlc3NMYXVuY2hlciBHU3VicHJvY2Vzc0xhdW5jaGVyOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworR1JlZlB0cjxHU3VicHJvY2Vzcz4gZmxhdHBha1NwYXduKEdTdWJwcm9j
ZXNzTGF1bmNoZXIqLCBjb25zdCBXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYsIGNoYXIqKiBhcmd2LCBpbnQgY2hpbGRQcm9jZXNzU29ja2V0LCBHRXJyb3IqKik7CisKK307
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAKaW5kZXggZDkwNmQ4ZGM4N2Y1YzYy
ZTU2NjZmMGQ3ZDBjYWI1ZDA4ODc0MGQ5Mi4uMjA1ODRmYWY1YjE2OWM1NjU3NTY3MjAyYjI3OWNh
MmU5ZDU3N2E5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9nbGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNpbmNsdWRlICJCdWJibGV3cmFwTGF1bmNoZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiRmxhdHBha0xhdW5jaGVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgpAQCAt
NDksNiArNTAsMzcgQEAgc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1bmN0aW9uKGdwb2ludGVyIHVz
ZXJEYXRhKQogICAgIGNsb3NlKHNvY2tldCk7CiB9CiAKKyNpZiBPUyhMSU5VWCkKK3N0YXRpYyBi
b29sIGlzRmxhdHBha1NwYXduVXNhYmxlKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKKyAgICBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gcmV0Owor
ICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiAqcmV0OworCisgICAgLy8gVGhlIEZsYXRwYWsg
c2FuZGJveCBoYXMgbW9yZSBzdHJpY3QgbGltaXRhdGlvbnMgb24gZmlsZXN5c3RlbSBhY2Nlc3Ms
IHdlIGNhbid0IHJlYXNvbmFibHkga25vdworICAgIC8vIGFoZWFkIG9mIHRpbWUgaWYgYSBwYXRo
IHdpbGwgd29yayBidXQgd2UgZG8ga25vdyBmb3IgYSBmYWN0IGAvdG1wYCB3aWxsIG5vdCBhbmQg
dGhhdCBFcGlwaGFueSAzLjM0CisgICAgLy8gcmVxdWlyZWQgYC90bXBgIHNvIGxldHMga2VlcCBp
dCB3b3JraW5nLgorICAgIGZvciAoY29uc3QgYXV0byYgcGF0aEFuZFBlcm1pc3Npb24gOiBsYXVu
Y2hPcHRpb25zLmV4dHJhV2ViUHJvY2Vzc1NhbmRib3hQYXRocykgeworICAgICAgICBpZiAoZ19z
dHJfaGFzX3ByZWZpeChwYXRoQW5kUGVybWlzc2lvbi5rZXkuZGF0YSgpLCAiL3RtcCIpKSB7Cisg
ICAgICAgICAgICBnX3dhcm5pbmcoImZsYXRwYWstc3Bhd24gc2FuZGJveCBpcyBkaXNhYmxlZCBi
ZWNhdXNlIHVuc3VwcG9ydGVkIHBhdGhzIHdlcmUgcmVxdWVzdGVkICgvdG1wKSIpOworICAgICAg
ICAgICAgcmV0ID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gKnJldDsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIC8vIEZvciBvdXIgdXNhZ2UgdG8gd29yayB3ZSBuZWVkIGZsYXRwYWsgPj0g
MS41LjIgb24gdGhlIGhvc3QgYW5kIGZsYXRwYWsteGRnLXV0aWxzID4gMS4wLjEgaW4gdGhlIHNh
bmRib3gKKyAgICBHUmVmUHRyPEdTdWJwcm9jZXNzPiBwcm9jZXNzID0gYWRvcHRHUmVmKGdfc3Vi
cHJvY2Vzc19uZXcoc3RhdGljX2Nhc3Q8R1N1YnByb2Nlc3NGbGFncz4oR19TVUJQUk9DRVNTX0ZM
QUdTX1NURE9VVF9TSUxFTkNFIHwgR19TVUJQUk9DRVNTX0ZMQUdTX1NUREVSUl9TSUxFTkNFKSwK
KyAgICAgICAgbnVsbHB0ciwgImZsYXRwYWstc3Bhd24iLCAiLS1zYW5kYm94IiwgIi0tc2FuZGJv
eC1leHBvc2UtcGF0aC1yby10cnk9L3RoaXNfcGF0aF9kb2VzbnRfZXhpc3QiLCAiZWNobyIsIG51
bGxwdHIpKTsKKworICAgIGlmICghcHJvY2Vzcy5nZXQoKSkKKyAgICAgICAgcmV0ID0gZmFsc2U7
CisgICAgZWxzZQorICAgICAgICByZXQgPSBnX3N1YnByb2Nlc3Nfd2FpdF9jaGVjayhwcm9jZXNz
LmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKKworICAgIHJldHVybiAqcmV0OworfQorI2VuZGlm
CisKICNpZiBFTkFCTEUoQlVCQkxFV1JBUF9TQU5EQk9YKQogc3RhdGljIGJvb2wgaXNJbnNpZGVE
b2NrZXIoKQogewpAQCAtMTYyLDE5ICsxOTQsMjMgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6Omxh
dW5jaFByb2Nlc3MoKQogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVm
UHRyPEdTdWJwcm9jZXNzPiBwcm9jZXNzOwogCi0jaWYgRU5BQkxFKEJVQkJMRVdSQVBfU0FOREJP
WCkKKyNpZiBPUyhMSU5VWCkKICAgICBjb25zdCBjaGFyKiBzYW5kYm94RW52ID0gZ19nZXRlbnYo
IldFQktJVF9GT1JDRV9TQU5EQk9YIik7CiAgICAgYm9vbCBzYW5kYm94RW5hYmxlZCA9IG1fbGF1
bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5nZXQoImVuYWJsZS1zYW5kYm94Iikg
PT0gInRydWUiOwogCiAgICAgaWYgKHNhbmRib3hFbnYpCiAgICAgICAgIHNhbmRib3hFbmFibGVk
ID0gIXN0cmNtcChzYW5kYm94RW52LCAiMSIpOwogCisgICAgaWYgKHNhbmRib3hFbmFibGVkICYm
IGlzRmxhdHBha1NwYXduVXNhYmxlKG1fbGF1bmNoT3B0aW9ucykpCisgICAgICAgIHByb2Nlc3Mg
PSBmbGF0cGFrU3Bhd24obGF1bmNoZXIuZ2V0KCksIG1fbGF1bmNoT3B0aW9ucywgYXJndiwgc29j
a2V0UGFpci5jbGllbnQsICZlcnJvci5vdXRQdHIoKSk7CisjaWYgRU5BQkxFKEJVQkJMRVdSQVBf
U0FOREJPWCkKICAgICAvLyBZb3UgY2Fubm90IHVzZSBidWJibGV3cmFwIHdpdGhpbiBGbGF0cGFr
IG9yIERvY2tlciBzbyBsZXRzIGVuc3VyZSBpdCBuZXZlciBoYXBwZW5zLgogICAgIC8vIFNuYXAg
Y2FuIGFsbG93IGl0IGJ1dCBoYXMgaXRzIG93biBsaW1pdGF0aW9ucyB0aGF0IHJlcXVpcmUgd29y
a2Fyb3VuZHMuCi0gICAgaWYgKHNhbmRib3hFbmFibGVkICYmICFpc0luc2lkZUZsYXRwYWsoKSAm
JiAhaXNJbnNpZGVTbmFwKCkgJiYgIWlzSW5zaWRlRG9ja2VyKCkpCisgICAgZWxzZSBpZiAoc2Fu
ZGJveEVuYWJsZWQgJiYgIWlzSW5zaWRlRmxhdHBhaygpICYmICFpc0luc2lkZVNuYXAoKSAmJiAh
aXNJbnNpZGVEb2NrZXIoKSkKICAgICAgICAgcHJvY2VzcyA9IGJ1YmJsZXdyYXBTcGF3bihsYXVu
Y2hlci5nZXQoKSwgbV9sYXVuY2hPcHRpb25zLCBhcmd2LCAmZXJyb3Iub3V0UHRyKCkpOworI2Vu
ZGlmIC8vIEVOQUJMRShCVUJCTEVXUkFQX1NBTkRCT1gpCiAgICAgZWxzZQotI2VuZGlmCisjZW5k
aWYgLy8gT1MoTElOVVgpCiAgICAgICAgIHByb2Nlc3MgPSBhZG9wdEdSZWYoZ19zdWJwcm9jZXNz
X2xhdW5jaGVyX3NwYXdudihsYXVuY2hlci5nZXQoKSwgYXJndiwgJmVycm9yLm91dFB0cigpKSk7
CiAKICAgICBpZiAoIXByb2Nlc3MuZ2V0KCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389971</attachid>
            <date>2020-02-06 10:22:31 -0800</date>
            <delta_ts>2020-02-06 11:26:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204732-20200206102231.patch</filename>
            <type>text/plain</type>
            <size>10764</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3ODliMmUyZDNhZmJhZGFh
ZmFjZWRkYzI4Y2EwNThlZTQ2MWVhMDEuLjQ0YjI4MmMxYmVhZTY4N2JjZDhjOWEzNTE4N2U0ZWVj
MTdhZTc5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTItMDEgIFBhdHJpY2sg
R3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBSZS1h
ZGQgZmxhdHBhayBzYW5kYm94IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDczMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgYnJpbmdzIGJhY2sgdGhlIEZsYXRwYWsgYmFzZWQgc2Fu
ZGJveCBub3cgdGhhdCB1cHN0cmVhbSBoYXMgYWRkZWQKKyAgICAgICAgZmVhdHVyZXMgdG8gdGhl
aXIgc3Bhd24gcG9ydGFsIHRvIGFjY29tb2RhdGUgb3VyIG5lZWRzLgorCisgICAgICAgICogU291
cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OmZsYXRwYWtTcGF3bik6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIv
RmxhdHBha0xhdW5jaGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9n
bGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc0ZsYXRwYWtT
cGF3blVzYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OmlzSW5zaWRlRmxhdHBhayk6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisKIDIwMTktMTItMTcg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgYnVpbGQgZml4IGFmdGVyIHIyNTM2NjEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCAxYTA1ZTMz
NDM0M2RiOGRmYjUyNTQxOGM1Zjg0NzIyZWQ0NWYxNTQ4Li5kZDY2ZmNkMzQ1NjY3MDhiYWE5ZWM3
ZDMyYjgwNjIxZjFhZThiNDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTIxMSw2ICsyMTEsNyBA
QCBVSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKIAogVUlQ
cm9jZXNzL0xhdW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAgQG5vLXVuaWZ5CiBV
SVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwIEBuby11bmlmeQor
VUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcCBAbm8tdW5pZnkKIAog
VUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50
eHQKaW5kZXggM2QyMDBmYTYwZTlmZTY5NjhjOTJkNWEwZDdiNDU4ZWZhNGI0NjEzMC4uOGEwMGI1
ZjRiYzg4ODc0M2U5MDg2NDgyZjM2NjJkNmYzMGE4YWFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBA
IC0xOTEsNiArMTkxLDcgQEAgVUlQcm9jZXNzL2dsaWIvV2Vic2l0ZURhdGFTdG9yZUdMaWIuY3Bw
IEBuby11bmlmeQogCiBVSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGli
LmNwcAogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcAorVUlQ
cm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmNwcAogCiBVSVByb2Nlc3MvUGx1
Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCiBVSVByb2Nlc3MvUGx1Z2lucy91bml4
L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWMwZjQ0YWY2YWUyMzllMTA5YWFhYmVlZGU0Yzc3YmE1YTIwMTMzMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVy
LmNwcApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGbGF0cGFrTGF1
bmNoZXIuaCIKKworI2lmIE9TKExJTlVYKQorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0dSZWZQ
dHI8R1N1YnByb2Nlc3M+IGZsYXRwYWtTcGF3bihHU3VicHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hl
ciwgY29uc3QgV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9w
dGlvbnMsIGNoYXIqKiBhcmd2LCBpbnQgY2hpbGRQcm9jZXNzU29ja2V0LCBHRXJyb3IqKiBlcnJv
cikKK3sKKyAgICBBU1NFUlQobGF1bmNoZXIpOworCisgICAgLy8gV2hlbiB3ZSBhcmUgcnVubmlu
ZyBpbnNpZGUgb2YgZmxhdHBhaydzIHNhbmRib3ggd2UgZG8gbm90IGhhdmUgcGVybWlzc2lvbnMg
dG8gdXNlIHRoZSBzYW1lCisgICAgLy8gYnViYmxld3JhcCBzYW5kYm94IHdlIGRvIG91dHNpZGUg
YnV0IGZsYXRwYWsgb2ZmZXJzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBuZXcgc2FuZGJveGVzCisg
ICAgLy8gZm9yIHVzIHVzaW5nIGZsYXRwYWstc3Bhd24uCisKKyAgICBHVW5pcXVlUHRyPGdjaGFy
PiBjaGlsZFByb2Nlc3NTb2NrZXRBcmcoZ19zdHJkdXBfcHJpbnRmKCItLWZvcndhcmQtZmQ9JWQi
LCBjaGlsZFByb2Nlc3NTb2NrZXQpKTsKKyAgICBWZWN0b3I8Q1N0cmluZz4gZmxhdHBha0FyZ3Mg
PSB7CisgICAgICAgICJmbGF0cGFrLXNwYXduIiwKKyAgICAgICAgY2hpbGRQcm9jZXNzU29ja2V0
QXJnLmdldCgpLAorICAgICAgICAiLS13YXRjaC1idXMiCisgICAgfTsKKworICAgIGlmIChsYXVu
Y2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Oldl
YikgeworICAgICAgICBmbGF0cGFrQXJncy5hcHBlbmRWZWN0b3IoVmVjdG9yPENTdHJpbmc+KHsK
KyAgICAgICAgICAgICItLXNhbmRib3giLAorICAgICAgICAgICAgIi0tbm8tbmV0d29yayIsCisg
ICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9c2hhcmUtZ3B1IiwKKyAgICAgICAgICAgICItLXNh
bmRib3gtZmxhZz1zaGFyZS1kaXNwbGF5IiwKKyAgICAgICAgICAgICItLXNhbmRib3gtZmxhZz1z
aGFyZS1zb3VuZCIsCisgICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9YWxsb3ctYTExeSIsCisg
ICAgICAgICAgICAiLS1zYW5kYm94LWZsYWc9YWxsb3ctZGJ1cyIsIC8vIE5vdGUgdGhhdCB0aGlz
IG9ubHkgYWxsb3dzIHBvcnRhbHMgYW5kICRhcHBpZC5TYW5kYm94LiogYWNjZXNzCisgICAgICAg
IH0pKTsKKworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdGhBbmRQZXJtaXNzaW9uIDogbGF1
bmNoT3B0aW9ucy5leHRyYVdlYlByb2Nlc3NTYW5kYm94UGF0aHMpIHsKKyAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGZvcm1hdFN0cmluZyA9IHBhdGhBbmRQZXJtaXNzaW9uLnZhbHVlID09IFNhbmRi
b3hQZXJtaXNzaW9uOjpSZWFkT25seSA/ICItLXNhbmRib3gtZXhwb3NlLXBhdGgtcm89JXMiOiAi
LS1zYW5kYm94LWV4cG9zZS1wYXRoPSVzIjsKKyAgICAgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IHBhdGhBcmcoZ19zdHJkdXBfcHJpbnRmKGZvcm1hdFN0cmluZywgcGF0aEFuZFBlcm1pc3Npb24u
a2V5LmRhdGEoKSkpOworICAgICAgICAgICAgZmxhdHBha0FyZ3MuYXBwZW5kKHBhdGhBcmcuZ2V0
KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgY2hhcioqIG5ld0FyZ3YgPSBnX25ld2EoY2hh
ciosIGdfc3Rydl9sZW5ndGgoYXJndikgKyBmbGF0cGFrQXJncy5zaXplKCkgKyAxKTsKKyAgICBz
aXplX3QgaSA9IDA7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGFyZyA6IGZsYXRwYWtBcmdzKQor
ICAgICAgICBuZXdBcmd2W2krK10gPSBjb25zdF9jYXN0PGNoYXIqPihhcmcuZGF0YSgpKTsKKyAg
ICBmb3IgKHNpemVfdCB4ID0gMDsgYXJndlt4XTsgeCsrKQorICAgICAgICBuZXdBcmd2W2krK10g
PSBhcmd2W3hdOworICAgIG5ld0FyZ3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICByZXR1cm4gYWRv
cHRHUmVmKGdfc3VicHJvY2Vzc19sYXVuY2hlcl9zcGF3bnYobGF1bmNoZXIsIG5ld0FyZ3YsIGVy
cm9yKSk7Cit9CisKK307CisKKyNlbmRpZiAvLyBPUyhMSU5VWCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvRmxhdHBha0xhdW5jaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtMYXVuY2hlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiNWE3NjZkMTVlN2Q1ZThmNmRiNTI1MzQ1YjcwZjM2MmFhOGQ2ZGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0ZsYXRwYWtM
YXVuY2hlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBPUyhMSU5VWCkKKworI2lu
Y2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorCit0eXBlZGVmIHN0cnVjdCBfR1N1YnByb2Nlc3MgR1N1YnByb2Nlc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR1N1YnByb2Nlc3NMYXVuY2hlciBHU3VicHJvY2Vzc0xhdW5jaGVyOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworR1JlZlB0cjxHU3VicHJvY2Vzcz4gZmxhdHBha1NwYXduKEdTdWJwcm9j
ZXNzTGF1bmNoZXIqLCBjb25zdCBXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYsIGNoYXIqKiBhcmd2LCBpbnQgY2hpbGRQcm9jZXNzU29ja2V0LCBHRXJyb3IqKik7CisKK307
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL2dsaWIvUHJvY2Vzc0xhdW5jaGVyR0xpYi5jcHAKaW5kZXggZDkwNmQ4ZGM4N2Y1YzYy
ZTU2NjZmMGQ3ZDBjYWI1ZDA4ODc0MGQ5Mi4uMTk4NmZmZTRhNWY4NjVlMTg2MzNjOWY0YzAwYjQ0
YjMxMjBkZTliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Z2xpYi9Qcm9jZXNzTGF1bmNoZXJHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9nbGliL1Byb2Nlc3NMYXVuY2hlckdMaWIuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNpbmNsdWRlICJCdWJibGV3cmFwTGF1bmNoZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiRmxhdHBha0xhdW5jaGVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgpAQCAt
NDksNiArNTAsMjYgQEAgc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1bmN0aW9uKGdwb2ludGVyIHVz
ZXJEYXRhKQogICAgIGNsb3NlKHNvY2tldCk7CiB9CiAKKyNpZiBPUyhMSU5VWCkKK3N0YXRpYyBi
b29sIGlzRmxhdHBha1NwYXduVXNhYmxlKCkKK3sKKyAgICBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4g
cmV0OworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiAqcmV0OworCisgICAgLy8gRm9yIG91
ciB1c2FnZSB0byB3b3JrIHdlIG5lZWQgZmxhdHBhayA+PSAxLjUuMiBvbiB0aGUgaG9zdCBhbmQg
ZmxhdHBhay14ZGctdXRpbHMgPiAxLjAuMSBpbiB0aGUgc2FuZGJveAorICAgIEdSZWZQdHI8R1N1
YnByb2Nlc3M+IHByb2Nlc3MgPSBhZG9wdEdSZWYoZ19zdWJwcm9jZXNzX25ldyhzdGF0aWNfY2Fz
dDxHU3VicHJvY2Vzc0ZsYWdzPihHX1NVQlBST0NFU1NfRkxBR1NfU1RET1VUX1NJTEVOQ0UgfCBH
X1NVQlBST0NFU1NfRkxBR1NfU1RERVJSX1NJTEVOQ0UpLAorICAgICAgICBudWxscHRyLCAiZmxh
dHBhay1zcGF3biIsICItLXNhbmRib3giLCAiLS1zYW5kYm94LWV4cG9zZS1wYXRoLXJvLXRyeT0v
dGhpc19wYXRoX2RvZXNudF9leGlzdCIsICJlY2hvIiwgbnVsbHB0cikpOworCisgICAgaWYgKCFw
cm9jZXNzLmdldCgpKQorICAgICAgICByZXQgPSBmYWxzZTsKKyAgICBlbHNlCisgICAgICAgIHJl
dCA9IGdfc3VicHJvY2Vzc193YWl0X2NoZWNrKHByb2Nlc3MuZ2V0KCksIG51bGxwdHIsIG51bGxw
dHIpOworCisgICAgcmV0dXJuICpyZXQ7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShCVUJCTEVX
UkFQX1NBTkRCT1gpCiBzdGF0aWMgYm9vbCBpc0luc2lkZURvY2tlcigpCiB7CkBAIC0xNjIsMTkg
KzE4MywyMyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgR1Vu
aXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAgIEdSZWZQdHI8R1N1YnByb2Nlc3M+IHByb2Nl
c3M7CiAKLSNpZiBFTkFCTEUoQlVCQkxFV1JBUF9TQU5EQk9YKQorI2lmIE9TKExJTlVYKQogICAg
IGNvbnN0IGNoYXIqIHNhbmRib3hFbnYgPSBnX2dldGVudigiV0VCS0lUX0ZPUkNFX1NBTkRCT1gi
KTsKICAgICBib29sIHNhbmRib3hFbmFibGVkID0gbV9sYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlh
bGl6YXRpb25EYXRhLmdldCgiZW5hYmxlLXNhbmRib3giKSA9PSAidHJ1ZSI7CiAKICAgICBpZiAo
c2FuZGJveEVudikKICAgICAgICAgc2FuZGJveEVuYWJsZWQgPSAhc3RyY21wKHNhbmRib3hFbnYs
ICIxIik7CiAKKyAgICBpZiAoc2FuZGJveEVuYWJsZWQgJiYgaXNGbGF0cGFrU3Bhd25Vc2FibGUo
KSkKKyAgICAgICAgcHJvY2VzcyA9IGZsYXRwYWtTcGF3bihsYXVuY2hlci5nZXQoKSwgbV9sYXVu
Y2hPcHRpb25zLCBhcmd2LCBzb2NrZXRQYWlyLmNsaWVudCwgJmVycm9yLm91dFB0cigpKTsKKyNp
ZiBFTkFCTEUoQlVCQkxFV1JBUF9TQU5EQk9YKQogICAgIC8vIFlvdSBjYW5ub3QgdXNlIGJ1YmJs
ZXdyYXAgd2l0aGluIEZsYXRwYWsgb3IgRG9ja2VyIHNvIGxldHMgZW5zdXJlIGl0IG5ldmVyIGhh
cHBlbnMuCiAgICAgLy8gU25hcCBjYW4gYWxsb3cgaXQgYnV0IGhhcyBpdHMgb3duIGxpbWl0YXRp
b25zIHRoYXQgcmVxdWlyZSB3b3JrYXJvdW5kcy4KLSAgICBpZiAoc2FuZGJveEVuYWJsZWQgJiYg
IWlzSW5zaWRlRmxhdHBhaygpICYmICFpc0luc2lkZVNuYXAoKSAmJiAhaXNJbnNpZGVEb2NrZXIo
KSkKKyAgICBlbHNlIGlmIChzYW5kYm94RW5hYmxlZCAmJiAhaXNJbnNpZGVGbGF0cGFrKCkgJiYg
IWlzSW5zaWRlU25hcCgpICYmICFpc0luc2lkZURvY2tlcigpKQogICAgICAgICBwcm9jZXNzID0g
YnViYmxld3JhcFNwYXduKGxhdW5jaGVyLmdldCgpLCBtX2xhdW5jaE9wdGlvbnMsIGFyZ3YsICZl
cnJvci5vdXRQdHIoKSk7CisjZW5kaWYgLy8gRU5BQkxFKEJVQkJMRVdSQVBfU0FOREJPWCkKICAg
ICBlbHNlCi0jZW5kaWYKKyNlbmRpZiAvLyBPUyhMSU5VWCkKICAgICAgICAgcHJvY2VzcyA9IGFk
b3B0R1JlZihnX3N1YnByb2Nlc3NfbGF1bmNoZXJfc3Bhd252KGxhdW5jaGVyLmdldCgpLCBhcmd2
LCAmZXJyb3Iub3V0UHRyKCkpKTsKIAogICAgIGlmICghcHJvY2Vzcy5nZXQoKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>