<?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>214210</bug_id>
          
          <creation_ts>2020-07-10 16:23:52 -0700</creation_ts>
          <short_desc>Cleanup GameController framework button binding with some constants</short_desc>
          <delta_ts>2020-07-10 20:45:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>darin</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1670649</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-10 16:23:52 -0700</bug_when>
    <thetext>Cleanup GameController framework button binding with some constants</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670653</commentid>
    <comment_count>1</comment_count>
      <attachid>404022</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-10 16:30:35 -0700</bug_when>
    <thetext>Created attachment 404022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670655</commentid>
    <comment_count>2</comment_count>
      <attachid>404022</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-10 16:36:29 -0700</bug_when>
    <thetext>Comment on attachment 404022
Patch

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

&gt; Source/WebCore/platform/gamepad/cocoa/GameControllerGamepad.mm:38
&gt; +enum class GamepadButtons : uint8_t
&gt; +{

WebKit coding style puts this on a single line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670664</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-10 17:07:01 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 404022 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=404022&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/gamepad/cocoa/GameControllerGamepad.mm:38
&gt; &gt; +enum class GamepadButtons : uint8_t
&gt; &gt; +{
&gt; 
&gt; WebKit coding style puts this on a single line.

Yup, in my quick search I saw non-Webkit code&apos;s style and copied it. Whoops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670665</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-10 17:07:13 -0700</bug_when>
    <thetext>Failing to apply because it relied on https://bugs.webkit.org/show_bug.cgi?id=212933 landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670666</commentid>
    <comment_count>5</comment_count>
      <attachid>404027</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-10 17:08:05 -0700</bug_when>
    <thetext>Created attachment 404027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670676</commentid>
    <comment_count>6</comment_count>
      <attachid>404027</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-10 17:55:09 -0700</bug_when>
    <thetext>Comment on attachment 404027
Patch

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

&gt; Source/WebCore/platform/gamepad/cocoa/GameControllerGamepad.mm:101
&gt; +    m_buttonValues.resize(homeButton ? (size_t)GamepadButtons::CenterClusterCenter + 1 : (size_t)GamepadButtons::CenterClusterCenter);

Not thrilled with how this hard-codes which is the last gamepad button 40 lines after the enum. Maybe two named constants right after the enum class would make the relationship clearer? Something like this perhaps:

    static constexpr auto numGamepadButtonsWithoutHomeButton = static_cast&lt;size_t&gt;(GamepadButtons::CenterClusterCenter) + 1;
    static constexpr auto numGamepadButtonsWithHomeButton = static_cast&lt;size_t&gt;(GamepadButtons::CenterClusterCenter);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670688</commentid>
    <comment_count>7</comment_count>
      <attachid>404034</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-10 18:54:07 -0700</bug_when>
    <thetext>Created attachment 404034
PFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670707</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-10 20:44:34 -0700</bug_when>
    <thetext>Committed r264258: &lt;https://trac.webkit.org/changeset/264258&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404034.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670709</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-10 20:45:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/65380536&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404022</attachid>
            <date>2020-07-10 16:30:35 -0700</date>
            <delta_ts>2020-07-10 17:08:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>6004</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMzcyZTk5OGJiYzEuLjEwYmJjNjIxMWFmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIwLTA3LTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBDbGVhbnVwIEdhbWVDb250cm9sbGVyIGZyYW1ld29yayBidXR0b24gYmlu
ZGluZyB3aXRoIHNvbWUgY29uc3RhbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTQyMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE5vIGJlaGF2aW9yIGNoYW5nZSkKKworICAg
ICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6R2FtZUNvbnRyb2xsZXJHYW1lcGFkOjpzZXR1cEFzRXh0ZW5kZWRH
YW1lcGFkKTogVXNlIG5hbWVkIGNvbnN0YW50cyBpbnN0ZWFkIG9mIG1hZ2ljIG51bWJlcnMuCisK
IDIwMjAtMDctMTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IExpbWl0IE11bHRpR2FtZXBhZFByb3ZpZGVyIHRvIENhdGFsaW5hIGFuZCBCaWcgU3VyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJv
bGxlckdhbWVwYWQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dh
bWVDb250cm9sbGVyR2FtZXBhZC5tbQppbmRleCA4Zjc1ZGVhZTZhYmMuLjc1OGRjMThhYWNkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29u
dHJvbGxlckdhbWVwYWQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9j
b2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWQubW0KQEAgLTMyLDYgKzMyLDI5IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorLy8gQnV0dG9ucyBpbiB0aGUgInN0YW5kYXJkIiBnYW1lcGFkIGxh
eW91dCBpbiB0aGUgV2ViIEdhbWVwYWQgc3BlYworLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2dh
bWVwYWQvI2Rmbi1zdGFuZGFyZC1nYW1lcGFkLWxheW91dAorZW51bSBjbGFzcyBHYW1lcGFkQnV0
dG9ucyA6IHVpbnQ4X3QKK3sKKyAgICBSaWdodENsdXN0ZXJCb3R0b20gPSAwLAorICAgIFJpZ2h0
Q2x1c3RlclJpZ2h0ID0gMSwKKyAgICBSaWdodENsdXN0ZXJMZWZ0ID0gMiwKKyAgICBSaWdodENs
dXN0ZXJUb3AgPSAzLAorICAgIExlZnRTaG91bGRlckZyb250ID0gNCwKKyAgICBSaWdodFNob3Vs
ZGVyRnJvbnQgPSA1LAorICAgIExlZnRTaG91bGRlckJhY2sgPSA2LAorICAgIFJpZ2h0U2hvdWxk
ZXJCYWNrID0gNywKKyAgICBDZW50ZXJDbHVzdGVyTGVmdCA9IDgsCisgICAgQ2VudGVyQ2x1c3Rl
clJpZ2h0ID0gOSwKKyAgICBMZWZ0U3RpY2sgPSAxMCwKKyAgICBSaWdodFN0aWNrID0gMTEsCisg
ICAgTGVmdENsdXN0ZXJUb3AgPSAxMiwKKyAgICBMZWZ0Q2x1c3RlckJvdHRvbSA9IDEzLAorICAg
IExlZnRDbHVzdGVyTGVmdCA9IDE0LAorICAgIExlZnRDbHVzdGVyUmlnaHQgPSAxNSwKKyAgICBD
ZW50ZXJDbHVzdGVyQ2VudGVyID0gMTYsCit9OworCiBHYW1lQ29udHJvbGxlckdhbWVwYWQ6Okdh
bWVDb250cm9sbGVyR2FtZXBhZChHQ0NvbnRyb2xsZXIgKmNvbnRyb2xsZXIsIHVuc2lnbmVkIGlu
ZGV4KQogICAgIDogUGxhdGZvcm1HYW1lcGFkKGluZGV4KQogICAgICwgbV9nY0NvbnRyb2xsZXIo
Y29udHJvbGxlcikKQEAgLTc2LDcgKzk5LDcgQEAgdm9pZCBHYW1lQ29udHJvbGxlckdhbWVwYWQ6
OnNldHVwQXNFeHRlbmRlZEdhbWVwYWQoKQogICAgIG1fbWFwcGluZyA9IFN0cmluZygic3RhbmRh
cmQiKTsKIAogICAgIGF1dG8gKmhvbWVCdXR0b24gPSBob21lQnV0dG9uRnJvbUV4dGVuZGVkR2Ft
ZXBhZChtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKSk7Ci0gICAgbV9idXR0b25WYWx1ZXMucmVzaXpl
KGhvbWVCdXR0b24gPyAxNyA6IDE2KTsKKyAgICBtX2J1dHRvblZhbHVlcy5yZXNpemUoaG9tZUJ1
dHRvbiA/IChzaXplX3QpR2FtZXBhZEJ1dHRvbnM6OkNlbnRlckNsdXN0ZXJDZW50ZXIgKyAxIDog
KHNpemVfdClHYW1lcGFkQnV0dG9uczo6Q2VudGVyQ2x1c3RlckNlbnRlcik7CiAKICAgICBtX2V4
dGVuZGVkR2FtZXBhZC5nZXQoKS52YWx1ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0V4dGVuZGVkR2Ft
ZXBhZCAqLCBHQ0NvbnRyb2xsZXJFbGVtZW50ICopIHsKICAgICAgICAgbV9sYXN0VXBkYXRlVGlt
ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwpAQCAtODQsNDAgKzEwNyw0MCBAQCB2b2lkIEdhbWVD
b250cm9sbGVyR2FtZXBhZDo6c2V0dXBBc0V4dGVuZGVkR2FtZXBhZCgpCiAgICAgICAgIG1faGFk
QnV0dG9uUHJlc3NlcyA9IGZhbHNlOwogICAgIH07CiAKLSAgICBhdXRvIGJpbmRCdXR0b24gPSBe
KEdDQ29udHJvbGxlckJ1dHRvbklucHV0ICpidXR0b24sIHNpemVfdCBpZHgpIHsKLSAgICAgICAg
bV9idXR0b25WYWx1ZXNbaWR4XSA9IGJ1dHRvbi52YWx1ZTsKKyAgICBhdXRvIGJpbmRCdXR0b24g
PSBeKEdDQ29udHJvbGxlckJ1dHRvbklucHV0ICpidXR0b24sIEdhbWVwYWRCdXR0b25zIGluZGV4
KSB7CisgICAgICAgIG1fYnV0dG9uVmFsdWVzWyhzaXplX3QpaW5kZXhdID0gYnV0dG9uLnZhbHVl
OwogICAgICAgICBidXR0b24udmFsdWVDaGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0
dG9uSW5wdXQgKiwgZmxvYXQgdmFsdWUsIEJPT0wgcHJlc3NlZCkgewotICAgICAgICAgICAgbV9i
dXR0b25WYWx1ZXNbaWR4XSA9IHZhbHVlOworICAgICAgICAgICAgbV9idXR0b25WYWx1ZXNbKHNp
emVfdClpbmRleF0gPSB2YWx1ZTsKICAgICAgICAgICAgIGlmIChwcmVzc2VkKQogICAgICAgICAg
ICAgICAgIG1faGFkQnV0dG9uUHJlc3NlcyA9IHRydWU7CiAgICAgICAgIH07CiAgICAgfTsKIAog
ICAgIC8vIEJ1dHRvbiBQYWQKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgp
LmJ1dHRvbkEsIDApOwotICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0
dG9uQiwgMSk7Ci0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0b25Y
LCAyKTsKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmJ1dHRvblksIDMp
OworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uQSwgR2FtZXBh
ZEJ1dHRvbnM6OlJpZ2h0Q2x1c3RlckJvdHRvbSk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVk
R2FtZXBhZC5nZXQoKS5idXR0b25CLCBHYW1lcGFkQnV0dG9uczo6UmlnaHRDbHVzdGVyUmlnaHQp
OworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uWCwgR2FtZXBh
ZEJ1dHRvbnM6OlJpZ2h0Q2x1c3RlckxlZnQpOworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdh
bWVwYWQuZ2V0KCkuYnV0dG9uWSwgR2FtZXBhZEJ1dHRvbnM6OlJpZ2h0Q2x1c3RlclRvcCk7CiAK
ICAgICAvLyBTaG91bGRlcnMsIFRyaWdnZXJzCi0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2Ft
ZXBhZC5nZXQoKS5sZWZ0U2hvdWxkZXIsIDQpOwotICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdh
bWVwYWQuZ2V0KCkucmlnaHRTaG91bGRlciwgNSk7Ci0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVk
R2FtZXBhZC5nZXQoKS5sZWZ0VHJpZ2dlciwgNik7Ci0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVk
R2FtZXBhZC5nZXQoKS5yaWdodFRyaWdnZXIsIDcpOworICAgIGJpbmRCdXR0b24obV9leHRlbmRl
ZEdhbWVwYWQuZ2V0KCkubGVmdFNob3VsZGVyLCBHYW1lcGFkQnV0dG9uczo6TGVmdFNob3VsZGVy
RnJvbnQpOworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkucmlnaHRTaG91
bGRlciwgR2FtZXBhZEJ1dHRvbnM6OlJpZ2h0U2hvdWxkZXJGcm9udCk7CisgICAgYmluZEJ1dHRv
bihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5sZWZ0VHJpZ2dlciwgR2FtZXBhZEJ1dHRvbnM6Okxl
ZnRTaG91bGRlckJhY2spOworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCku
cmlnaHRUcmlnZ2VyLCBHYW1lcGFkQnV0dG9uczo6UmlnaHRTaG91bGRlckJhY2spOwogCiAgICAg
Ly8gRCBQYWQKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmRwYWQudXAs
IDEyKTsKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmRwYWQuZG93biwg
MTMpOwotICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuZHBhZC5sZWZ0LCAx
NCk7Ci0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5kcGFkLnJpZ2h0LCAx
NSk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5kcGFkLnVwLCBHYW1l
cGFkQnV0dG9uczo6TGVmdENsdXN0ZXJUb3ApOworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdh
bWVwYWQuZ2V0KCkuZHBhZC5kb3duLCBHYW1lcGFkQnV0dG9uczo6TGVmdENsdXN0ZXJCb3R0b20p
OworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuZHBhZC5sZWZ0LCBHYW1l
cGFkQnV0dG9uczo6TGVmdENsdXN0ZXJMZWZ0KTsKKyAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRH
YW1lcGFkLmdldCgpLmRwYWQucmlnaHQsIEdhbWVwYWRCdXR0b25zOjpMZWZ0Q2x1c3RlclJpZ2h0
KTsKIAogICAgIGlmIChob21lQnV0dG9uKQotICAgICAgICBiaW5kQnV0dG9uKGhvbWVCdXR0b24s
IDE2KTsKKyAgICAgICAgYmluZEJ1dHRvbihob21lQnV0dG9uLCBHYW1lcGFkQnV0dG9uczo6Q2Vu
dGVyQ2x1c3RlckNlbnRlcik7CiAKICAgICAvLyBTZWxlY3QsIFN0YXJ0CiAjaWYgSEFWRShHQ0VY
VEVOREVER0FNRVBBRF9CVVRUT05TX09QVElPTlNfTUVOVSkKLSAgICBiaW5kQnV0dG9uKG1fZXh0
ZW5kZWRHYW1lcGFkLmdldCgpLmJ1dHRvbk9wdGlvbnMsIDgpOwotICAgIGJpbmRCdXR0b24obV9l
eHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uTWVudSwgOSk7CisgICAgYmluZEJ1dHRvbihtX2V4
dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0b25PcHRpb25zLCBHYW1lcGFkQnV0dG9uczo6Q2VudGVy
Q2x1c3RlckxlZnQpOworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0
dG9uTWVudSwgR2FtZXBhZEJ1dHRvbnM6OkNlbnRlckNsdXN0ZXJSaWdodCk7CiAjZW5kaWYKIAog
ICAgIC8vIEwzLCBSMwpAQCAtMTI2LDggKzE0OSw4IEBAIHZvaWQgR2FtZUNvbnRyb2xsZXJHYW1l
cGFkOjpzZXR1cEFzRXh0ZW5kZWRHYW1lcGFkKCkKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxh
YmlsaXR5IgogICAgIGlmIChbbV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihsZWZ0VGh1bWJzdGlja0J1dHRvbildKSB7Ci0gICAgICAgIGJpbmRCdXR0
b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkubGVmdFRodW1ic3RpY2tCdXR0b24sIDEwKTsKLSAg
ICAgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5yaWdodFRodW1ic3RpY2tC
dXR0b24sIDExKTsKKyAgICAgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5s
ZWZ0VGh1bWJzdGlja0J1dHRvbiwgR2FtZXBhZEJ1dHRvbnM6OkxlZnRTdGljayk7CisgICAgICAg
IGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkucmlnaHRUaHVtYnN0aWNrQnV0dG9u
LCBHYW1lcGFkQnV0dG9uczo6UmlnaHRTdGljayk7CiAgICAgfQogI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404027</attachid>
            <date>2020-07-10 17:08:05 -0700</date>
            <delta_ts>2020-07-10 17:55:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>6003</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMzcyZTk5OGJiYzEuLjEwYmJjNjIxMWFmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIwLTA3LTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBDbGVhbnVwIEdhbWVDb250cm9sbGVyIGZyYW1ld29yayBidXR0b24gYmlu
ZGluZyB3aXRoIHNvbWUgY29uc3RhbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTQyMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE5vIGJlaGF2aW9yIGNoYW5nZSkKKworICAg
ICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6R2FtZUNvbnRyb2xsZXJHYW1lcGFkOjpzZXR1cEFzRXh0ZW5kZWRH
YW1lcGFkKTogVXNlIG5hbWVkIGNvbnN0YW50cyBpbnN0ZWFkIG9mIG1hZ2ljIG51bWJlcnMuCisK
IDIwMjAtMDctMTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IExpbWl0IE11bHRpR2FtZXBhZFByb3ZpZGVyIHRvIENhdGFsaW5hIGFuZCBCaWcgU3VyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJv
bGxlckdhbWVwYWQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dh
bWVDb250cm9sbGVyR2FtZXBhZC5tbQppbmRleCA4Zjc1ZGVhZTZhYmMuLjUwYTYzZjE0ZDFkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29u
dHJvbGxlckdhbWVwYWQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9j
b2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWQubW0KQEAgLTMyLDYgKzMyLDI4IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorLy8gQnV0dG9ucyBpbiB0aGUgInN0YW5kYXJkIiBnYW1lcGFkIGxh
eW91dCBpbiB0aGUgV2ViIEdhbWVwYWQgc3BlYworLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2dh
bWVwYWQvI2Rmbi1zdGFuZGFyZC1nYW1lcGFkLWxheW91dAorZW51bSBjbGFzcyBHYW1lcGFkQnV0
dG9ucyA6IHVpbnQ4X3QgeworICAgIFJpZ2h0Q2x1c3RlckJvdHRvbSA9IDAsCisgICAgUmlnaHRD
bHVzdGVyUmlnaHQgPSAxLAorICAgIFJpZ2h0Q2x1c3RlckxlZnQgPSAyLAorICAgIFJpZ2h0Q2x1
c3RlclRvcCA9IDMsCisgICAgTGVmdFNob3VsZGVyRnJvbnQgPSA0LAorICAgIFJpZ2h0U2hvdWxk
ZXJGcm9udCA9IDUsCisgICAgTGVmdFNob3VsZGVyQmFjayA9IDYsCisgICAgUmlnaHRTaG91bGRl
ckJhY2sgPSA3LAorICAgIENlbnRlckNsdXN0ZXJMZWZ0ID0gOCwKKyAgICBDZW50ZXJDbHVzdGVy
UmlnaHQgPSA5LAorICAgIExlZnRTdGljayA9IDEwLAorICAgIFJpZ2h0U3RpY2sgPSAxMSwKKyAg
ICBMZWZ0Q2x1c3RlclRvcCA9IDEyLAorICAgIExlZnRDbHVzdGVyQm90dG9tID0gMTMsCisgICAg
TGVmdENsdXN0ZXJMZWZ0ID0gMTQsCisgICAgTGVmdENsdXN0ZXJSaWdodCA9IDE1LAorICAgIENl
bnRlckNsdXN0ZXJDZW50ZXIgPSAxNiwKK307CisKIEdhbWVDb250cm9sbGVyR2FtZXBhZDo6R2Ft
ZUNvbnRyb2xsZXJHYW1lcGFkKEdDQ29udHJvbGxlciAqY29udHJvbGxlciwgdW5zaWduZWQgaW5k
ZXgpCiAgICAgOiBQbGF0Zm9ybUdhbWVwYWQoaW5kZXgpCiAgICAgLCBtX2djQ29udHJvbGxlcihj
b250cm9sbGVyKQpAQCAtNzYsNyArOTgsNyBAQCB2b2lkIEdhbWVDb250cm9sbGVyR2FtZXBhZDo6
c2V0dXBBc0V4dGVuZGVkR2FtZXBhZCgpCiAgICAgbV9tYXBwaW5nID0gU3RyaW5nKCJzdGFuZGFy
ZCIpOwogCiAgICAgYXV0byAqaG9tZUJ1dHRvbiA9IGhvbWVCdXR0b25Gcm9tRXh0ZW5kZWRHYW1l
cGFkKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpKTsKLSAgICBtX2J1dHRvblZhbHVlcy5yZXNpemUo
aG9tZUJ1dHRvbiA/IDE3IDogMTYpOworICAgIG1fYnV0dG9uVmFsdWVzLnJlc2l6ZShob21lQnV0
dG9uID8gKHNpemVfdClHYW1lcGFkQnV0dG9uczo6Q2VudGVyQ2x1c3RlckNlbnRlciArIDEgOiAo
c2l6ZV90KUdhbWVwYWRCdXR0b25zOjpDZW50ZXJDbHVzdGVyQ2VudGVyKTsKIAogICAgIG1fZXh0
ZW5kZWRHYW1lcGFkLmdldCgpLnZhbHVlQ2hhbmdlZEhhbmRsZXIgPSBeKEdDRXh0ZW5kZWRHYW1l
cGFkICosIEdDQ29udHJvbGxlckVsZW1lbnQgKikgewogICAgICAgICBtX2xhc3RVcGRhdGVUaW1l
ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CkBAIC04NCw0MCArMTA2LDQwIEBAIHZvaWQgR2FtZUNv
bnRyb2xsZXJHYW1lcGFkOjpzZXR1cEFzRXh0ZW5kZWRHYW1lcGFkKCkKICAgICAgICAgbV9oYWRC
dXR0b25QcmVzc2VzID0gZmFsc2U7CiAgICAgfTsKIAotICAgIGF1dG8gYmluZEJ1dHRvbiA9IF4o
R0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKmJ1dHRvbiwgc2l6ZV90IGlkeCkgewotICAgICAgICBt
X2J1dHRvblZhbHVlc1tpZHhdID0gYnV0dG9uLnZhbHVlOworICAgIGF1dG8gYmluZEJ1dHRvbiA9
IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKmJ1dHRvbiwgR2FtZXBhZEJ1dHRvbnMgaW5kZXgp
IHsKKyAgICAgICAgbV9idXR0b25WYWx1ZXNbKHNpemVfdClpbmRleF0gPSBidXR0b24udmFsdWU7
CiAgICAgICAgIGJ1dHRvbi52YWx1ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0NvbnRyb2xsZXJCdXR0
b25JbnB1dCAqLCBmbG9hdCB2YWx1ZSwgQk9PTCBwcmVzc2VkKSB7Ci0gICAgICAgICAgICBtX2J1
dHRvblZhbHVlc1tpZHhdID0gdmFsdWU7CisgICAgICAgICAgICBtX2J1dHRvblZhbHVlc1soc2l6
ZV90KWluZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgaWYgKHByZXNzZWQpCiAgICAgICAgICAg
ICAgICAgbV9oYWRCdXR0b25QcmVzc2VzID0gdHJ1ZTsKICAgICAgICAgfTsKICAgICB9OwogCiAg
ICAgLy8gQnV0dG9uIFBhZAotICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCku
YnV0dG9uQSwgMCk7Ci0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0
b25CLCAxKTsKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmJ1dHRvblgs
IDIpOwotICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uWSwgMyk7
CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0b25BLCBHYW1lcGFk
QnV0dG9uczo6UmlnaHRDbHVzdGVyQm90dG9tKTsKKyAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRH
YW1lcGFkLmdldCgpLmJ1dHRvbkIsIEdhbWVwYWRCdXR0b25zOjpSaWdodENsdXN0ZXJSaWdodCk7
CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0b25YLCBHYW1lcGFk
QnV0dG9uczo6UmlnaHRDbHVzdGVyTGVmdCk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2Ft
ZXBhZC5nZXQoKS5idXR0b25ZLCBHYW1lcGFkQnV0dG9uczo6UmlnaHRDbHVzdGVyVG9wKTsKIAog
ICAgIC8vIFNob3VsZGVycywgVHJpZ2dlcnMKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1l
cGFkLmdldCgpLmxlZnRTaG91bGRlciwgNCk7Ci0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2Ft
ZXBhZC5nZXQoKS5yaWdodFNob3VsZGVyLCA1KTsKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRH
YW1lcGFkLmdldCgpLmxlZnRUcmlnZ2VyLCA2KTsKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRH
YW1lcGFkLmdldCgpLnJpZ2h0VHJpZ2dlciwgNyk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVk
R2FtZXBhZC5nZXQoKS5sZWZ0U2hvdWxkZXIsIEdhbWVwYWRCdXR0b25zOjpMZWZ0U2hvdWxkZXJG
cm9udCk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5yaWdodFNob3Vs
ZGVyLCBHYW1lcGFkQnV0dG9uczo6UmlnaHRTaG91bGRlckZyb250KTsKKyAgICBiaW5kQnV0dG9u
KG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmxlZnRUcmlnZ2VyLCBHYW1lcGFkQnV0dG9uczo6TGVm
dFNob3VsZGVyQmFjayk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5y
aWdodFRyaWdnZXIsIEdhbWVwYWRCdXR0b25zOjpSaWdodFNob3VsZGVyQmFjayk7CiAKICAgICAv
LyBEIFBhZAotICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuZHBhZC51cCwg
MTIpOwotICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuZHBhZC5kb3duLCAx
Myk7Ci0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5kcGFkLmxlZnQsIDE0
KTsKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmRwYWQucmlnaHQsIDE1
KTsKKyAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmRwYWQudXAsIEdhbWVw
YWRCdXR0b25zOjpMZWZ0Q2x1c3RlclRvcCk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2Ft
ZXBhZC5nZXQoKS5kcGFkLmRvd24sIEdhbWVwYWRCdXR0b25zOjpMZWZ0Q2x1c3RlckJvdHRvbSk7
CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5kcGFkLmxlZnQsIEdhbWVw
YWRCdXR0b25zOjpMZWZ0Q2x1c3RlckxlZnQpOworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdh
bWVwYWQuZ2V0KCkuZHBhZC5yaWdodCwgR2FtZXBhZEJ1dHRvbnM6OkxlZnRDbHVzdGVyUmlnaHQp
OwogCiAgICAgaWYgKGhvbWVCdXR0b24pCi0gICAgICAgIGJpbmRCdXR0b24oaG9tZUJ1dHRvbiwg
MTYpOworICAgICAgICBiaW5kQnV0dG9uKGhvbWVCdXR0b24sIEdhbWVwYWRCdXR0b25zOjpDZW50
ZXJDbHVzdGVyQ2VudGVyKTsKIAogICAgIC8vIFNlbGVjdCwgU3RhcnQKICNpZiBIQVZFKEdDRVhU
RU5ERURHQU1FUEFEX0JVVFRPTlNfT1BUSU9OU19NRU5VKQotICAgIGJpbmRCdXR0b24obV9leHRl
bmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uT3B0aW9ucywgOCk7Ci0gICAgYmluZEJ1dHRvbihtX2V4
dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0b25NZW51LCA5KTsKKyAgICBiaW5kQnV0dG9uKG1fZXh0
ZW5kZWRHYW1lcGFkLmdldCgpLmJ1dHRvbk9wdGlvbnMsIEdhbWVwYWRCdXR0b25zOjpDZW50ZXJD
bHVzdGVyTGVmdCk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0
b25NZW51LCBHYW1lcGFkQnV0dG9uczo6Q2VudGVyQ2x1c3RlclJpZ2h0KTsKICNlbmRpZgogCiAg
ICAgLy8gTDMsIFIzCkBAIC0xMjYsOCArMTQ4LDggQEAgdm9pZCBHYW1lQ29udHJvbGxlckdhbWVw
YWQ6OnNldHVwQXNFeHRlbmRlZEdhbWVwYWQoKQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHkiCiAgICAgaWYgKFttX2V4dGVuZGVkR2FtZXBhZC5nZXQoKSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGxlZnRUaHVtYnN0aWNrQnV0dG9uKV0pIHsKLSAgICAgICAgYmluZEJ1dHRv
bihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5sZWZ0VGh1bWJzdGlja0J1dHRvbiwgMTApOwotICAg
ICAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLnJpZ2h0VGh1bWJzdGlja0J1
dHRvbiwgMTEpOworICAgICAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmxl
ZnRUaHVtYnN0aWNrQnV0dG9uLCBHYW1lcGFkQnV0dG9uczo6TGVmdFN0aWNrKTsKKyAgICAgICAg
YmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5yaWdodFRodW1ic3RpY2tCdXR0b24s
IEdhbWVwYWRCdXR0b25zOjpSaWdodFN0aWNrKTsKICAgICB9CiAjcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiAjZW5kaWYK
</data>
<flag name="review"
          id="419436"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404034</attachid>
            <date>2020-07-10 18:54:07 -0700</date>
            <delta_ts>2020-07-10 20:44:34 -0700</delta_ts>
            <desc>PFL</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>6496</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMzcyZTk5OGJiYzEuLjYxNzI4OGEyYmUyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIwLTA3LTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBDbGVhbnVwIEdhbWVDb250cm9sbGVyIGZyYW1ld29yayBidXR0b24gYmlu
ZGluZyB3aXRoIHNvbWUgY29uc3RhbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTQyMTAKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE5vIGJlaGF2aW9yIGNoYW5nZSkKKworICAgICAg
ICAqIHBsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6R2FtZUNvbnRyb2xsZXJHYW1lcGFkOjpzZXR1cEFzRXh0ZW5kZWRHYW1l
cGFkKTogVXNlIG5hbWVkIGNvbnN0YW50cyBpbnN0ZWFkIG9mIG1hZ2ljIG51bWJlcnMuCisKIDIw
MjAtMDctMTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIExp
bWl0IE11bHRpR2FtZXBhZFByb3ZpZGVyIHRvIENhdGFsaW5hIGFuZCBCaWcgU3VyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxl
ckdhbWVwYWQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVD
b250cm9sbGVyR2FtZXBhZC5tbQppbmRleCA4Zjc1ZGVhZTZhYmMuLmY4NzMxNTEzNmIxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJv
bGxlckdhbWVwYWQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2Nv
YS9HYW1lQ29udHJvbGxlckdhbWVwYWQubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsMzEgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCisvLyBCdXR0b25zIGluIHRoZSAic3RhbmRhcmQiIGdhbWVwYWQgbGF5b3V0IGlu
IHRoZSBXZWIgR2FtZXBhZCBzcGVjCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvZ2FtZXBhZC8j
ZGZuLXN0YW5kYXJkLWdhbWVwYWQtbGF5b3V0CitlbnVtIGNsYXNzIEdhbWVwYWRCdXR0b25zIDog
dWludDhfdCB7CisgICAgUmlnaHRDbHVzdGVyQm90dG9tID0gMCwKKyAgICBSaWdodENsdXN0ZXJS
aWdodCA9IDEsCisgICAgUmlnaHRDbHVzdGVyTGVmdCA9IDIsCisgICAgUmlnaHRDbHVzdGVyVG9w
ID0gMywKKyAgICBMZWZ0U2hvdWxkZXJGcm9udCA9IDQsCisgICAgUmlnaHRTaG91bGRlckZyb250
ID0gNSwKKyAgICBMZWZ0U2hvdWxkZXJCYWNrID0gNiwKKyAgICBSaWdodFNob3VsZGVyQmFjayA9
IDcsCisgICAgQ2VudGVyQ2x1c3RlckxlZnQgPSA4LAorICAgIENlbnRlckNsdXN0ZXJSaWdodCA9
IDksCisgICAgTGVmdFN0aWNrID0gMTAsCisgICAgUmlnaHRTdGljayA9IDExLAorICAgIExlZnRD
bHVzdGVyVG9wID0gMTIsCisgICAgTGVmdENsdXN0ZXJCb3R0b20gPSAxMywKKyAgICBMZWZ0Q2x1
c3RlckxlZnQgPSAxNCwKKyAgICBMZWZ0Q2x1c3RlclJpZ2h0ID0gMTUsCisgICAgQ2VudGVyQ2x1
c3RlckNlbnRlciA9IDE2LAorfTsKKworc3RhdGljIGNvbnN0ZXhwciBhdXRvIG51bUdhbWVwYWRC
dXR0b25zV2l0aG91dEhvbWVCdXR0b24gPSBzdGF0aWNfY2FzdDxzaXplX3Q+KEdhbWVwYWRCdXR0
b25zOjpDZW50ZXJDbHVzdGVyQ2VudGVyKTsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBudW1HYW1l
cGFkQnV0dG9uc1dpdGhIb21lQnV0dG9uID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihHYW1lcGFkQnV0
dG9uczo6Q2VudGVyQ2x1c3RlckNlbnRlcikgKyAxOworCiBHYW1lQ29udHJvbGxlckdhbWVwYWQ6
OkdhbWVDb250cm9sbGVyR2FtZXBhZChHQ0NvbnRyb2xsZXIgKmNvbnRyb2xsZXIsIHVuc2lnbmVk
IGluZGV4KQogICAgIDogUGxhdGZvcm1HYW1lcGFkKGluZGV4KQogICAgICwgbV9nY0NvbnRyb2xs
ZXIoY29udHJvbGxlcikKQEAgLTc2LDcgKzEwMSw3IEBAIHZvaWQgR2FtZUNvbnRyb2xsZXJHYW1l
cGFkOjpzZXR1cEFzRXh0ZW5kZWRHYW1lcGFkKCkKICAgICBtX21hcHBpbmcgPSBTdHJpbmcoInN0
YW5kYXJkIik7CiAKICAgICBhdXRvICpob21lQnV0dG9uID0gaG9tZUJ1dHRvbkZyb21FeHRlbmRl
ZEdhbWVwYWQobV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkpOwotICAgIG1fYnV0dG9uVmFsdWVzLnJl
c2l6ZShob21lQnV0dG9uID8gMTcgOiAxNik7CisgICAgbV9idXR0b25WYWx1ZXMucmVzaXplKGhv
bWVCdXR0b24gPyBudW1HYW1lcGFkQnV0dG9uc1dpdGhIb21lQnV0dG9uIDogbnVtR2FtZXBhZEJ1
dHRvbnNXaXRob3V0SG9tZUJ1dHRvbik7CiAKICAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS52
YWx1ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0V4dGVuZGVkR2FtZXBhZCAqLCBHQ0NvbnRyb2xsZXJF
bGVtZW50ICopIHsKICAgICAgICAgbV9sYXN0VXBkYXRlVGltZSA9IE1vbm90b25pY1RpbWU6Om5v
dygpOwpAQCAtODQsNDAgKzEwOSw0MCBAQCB2b2lkIEdhbWVDb250cm9sbGVyR2FtZXBhZDo6c2V0
dXBBc0V4dGVuZGVkR2FtZXBhZCgpCiAgICAgICAgIG1faGFkQnV0dG9uUHJlc3NlcyA9IGZhbHNl
OwogICAgIH07CiAKLSAgICBhdXRvIGJpbmRCdXR0b24gPSBeKEdDQ29udHJvbGxlckJ1dHRvbklu
cHV0ICpidXR0b24sIHNpemVfdCBpZHgpIHsKLSAgICAgICAgbV9idXR0b25WYWx1ZXNbaWR4XSA9
IGJ1dHRvbi52YWx1ZTsKKyAgICBhdXRvIGJpbmRCdXR0b24gPSBeKEdDQ29udHJvbGxlckJ1dHRv
bklucHV0ICpidXR0b24sIEdhbWVwYWRCdXR0b25zIGluZGV4KSB7CisgICAgICAgIG1fYnV0dG9u
VmFsdWVzWyhzaXplX3QpaW5kZXhdID0gYnV0dG9uLnZhbHVlOwogICAgICAgICBidXR0b24udmFs
dWVDaGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFs
dWUsIEJPT0wgcHJlc3NlZCkgewotICAgICAgICAgICAgbV9idXR0b25WYWx1ZXNbaWR4XSA9IHZh
bHVlOworICAgICAgICAgICAgbV9idXR0b25WYWx1ZXNbKHNpemVfdClpbmRleF0gPSB2YWx1ZTsK
ICAgICAgICAgICAgIGlmIChwcmVzc2VkKQogICAgICAgICAgICAgICAgIG1faGFkQnV0dG9uUHJl
c3NlcyA9IHRydWU7CiAgICAgICAgIH07CiAgICAgfTsKIAogICAgIC8vIEJ1dHRvbiBQYWQKLSAg
ICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmJ1dHRvbkEsIDApOwotICAgIGJp
bmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uQiwgMSk7Ci0gICAgYmluZEJ1
dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0b25YLCAyKTsKLSAgICBiaW5kQnV0dG9u
KG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmJ1dHRvblksIDMpOworICAgIGJpbmRCdXR0b24obV9l
eHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uQSwgR2FtZXBhZEJ1dHRvbnM6OlJpZ2h0Q2x1c3Rl
ckJvdHRvbSk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0b25C
LCBHYW1lcGFkQnV0dG9uczo6UmlnaHRDbHVzdGVyUmlnaHQpOworICAgIGJpbmRCdXR0b24obV9l
eHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uWCwgR2FtZXBhZEJ1dHRvbnM6OlJpZ2h0Q2x1c3Rl
ckxlZnQpOworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uWSwg
R2FtZXBhZEJ1dHRvbnM6OlJpZ2h0Q2x1c3RlclRvcCk7CiAKICAgICAvLyBTaG91bGRlcnMsIFRy
aWdnZXJzCi0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5sZWZ0U2hvdWxk
ZXIsIDQpOwotICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkucmlnaHRTaG91
bGRlciwgNSk7Ci0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5sZWZ0VHJp
Z2dlciwgNik7Ci0gICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5yaWdodFRy
aWdnZXIsIDcpOworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkubGVmdFNo
b3VsZGVyLCBHYW1lcGFkQnV0dG9uczo6TGVmdFNob3VsZGVyRnJvbnQpOworICAgIGJpbmRCdXR0
b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkucmlnaHRTaG91bGRlciwgR2FtZXBhZEJ1dHRvbnM6
OlJpZ2h0U2hvdWxkZXJGcm9udCk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5n
ZXQoKS5sZWZ0VHJpZ2dlciwgR2FtZXBhZEJ1dHRvbnM6OkxlZnRTaG91bGRlckJhY2spOworICAg
IGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkucmlnaHRUcmlnZ2VyLCBHYW1lcGFk
QnV0dG9uczo6UmlnaHRTaG91bGRlckJhY2spOwogCiAgICAgLy8gRCBQYWQKLSAgICBiaW5kQnV0
dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmRwYWQudXAsIDEyKTsKLSAgICBiaW5kQnV0dG9u
KG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmRwYWQuZG93biwgMTMpOwotICAgIGJpbmRCdXR0b24o
bV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuZHBhZC5sZWZ0LCAxNCk7Ci0gICAgYmluZEJ1dHRvbiht
X2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5kcGFkLnJpZ2h0LCAxNSk7CisgICAgYmluZEJ1dHRvbiht
X2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5kcGFkLnVwLCBHYW1lcGFkQnV0dG9uczo6TGVmdENsdXN0
ZXJUb3ApOworICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuZHBhZC5kb3du
LCBHYW1lcGFkQnV0dG9uczo6TGVmdENsdXN0ZXJCb3R0b20pOworICAgIGJpbmRCdXR0b24obV9l
eHRlbmRlZEdhbWVwYWQuZ2V0KCkuZHBhZC5sZWZ0LCBHYW1lcGFkQnV0dG9uczo6TGVmdENsdXN0
ZXJMZWZ0KTsKKyAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmRwYWQucmln
aHQsIEdhbWVwYWRCdXR0b25zOjpMZWZ0Q2x1c3RlclJpZ2h0KTsKIAogICAgIGlmIChob21lQnV0
dG9uKQotICAgICAgICBiaW5kQnV0dG9uKGhvbWVCdXR0b24sIDE2KTsKKyAgICAgICAgYmluZEJ1
dHRvbihob21lQnV0dG9uLCBHYW1lcGFkQnV0dG9uczo6Q2VudGVyQ2x1c3RlckNlbnRlcik7CiAK
ICAgICAvLyBTZWxlY3QsIFN0YXJ0CiAjaWYgSEFWRShHQ0VYVEVOREVER0FNRVBBRF9CVVRUT05T
X09QVElPTlNfTUVOVSkKLSAgICBiaW5kQnV0dG9uKG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmJ1
dHRvbk9wdGlvbnMsIDgpOwotICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCku
YnV0dG9uTWVudSwgOSk7CisgICAgYmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5i
dXR0b25PcHRpb25zLCBHYW1lcGFkQnV0dG9uczo6Q2VudGVyQ2x1c3RlckxlZnQpOworICAgIGJp
bmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uTWVudSwgR2FtZXBhZEJ1dHRv
bnM6OkNlbnRlckNsdXN0ZXJSaWdodCk7CiAjZW5kaWYKIAogICAgIC8vIEwzLCBSMwpAQCAtMTI2
LDggKzE1MSw4IEBAIHZvaWQgR2FtZUNvbnRyb2xsZXJHYW1lcGFkOjpzZXR1cEFzRXh0ZW5kZWRH
YW1lcGFkKCkKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5IgogICAgIGlmIChbbV9l
eHRlbmRlZEdhbWVwYWQuZ2V0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihsZWZ0VGh1
bWJzdGlja0J1dHRvbildKSB7Ci0gICAgICAgIGJpbmRCdXR0b24obV9leHRlbmRlZEdhbWVwYWQu
Z2V0KCkubGVmdFRodW1ic3RpY2tCdXR0b24sIDEwKTsKLSAgICAgICAgYmluZEJ1dHRvbihtX2V4
dGVuZGVkR2FtZXBhZC5nZXQoKS5yaWdodFRodW1ic3RpY2tCdXR0b24sIDExKTsKKyAgICAgICAg
YmluZEJ1dHRvbihtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5sZWZ0VGh1bWJzdGlja0J1dHRvbiwg
R2FtZXBhZEJ1dHRvbnM6OkxlZnRTdGljayk7CisgICAgICAgIGJpbmRCdXR0b24obV9leHRlbmRl
ZEdhbWVwYWQuZ2V0KCkucmlnaHRUaHVtYnN0aWNrQnV0dG9uLCBHYW1lcGFkQnV0dG9uczo6Umln
aHRTdGljayk7CiAgICAgfQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>