<?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>199650</bug_id>
          
          <creation_ts>2019-07-09 18:22:00 -0700</creation_ts>
          <short_desc>Keyword lookup can use memcmp to get around unaligned load undefined behavior</short_desc>
          <delta_ts>2020-04-29 18:45:04 -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>New Bugs</component>
          <version>WebKit Local Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>201515</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saagar Jha">saagarjha</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>king_pirate11</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1551554</commentid>
    <comment_count>0</comment_count>
    <who name="Saagar Jha">saagarjha</who>
    <bug_when>2019-07-09 18:22:00 -0700</bug_when>
    <thetext>KeywordLookup.h rolls what appears to be its own custom memcmp to do string matches, but it performs unaligned loads, reinterpret_casts, and in general makes UBSan very unhappy. I think we can use just use memcmp instead (someone should check whether I can do this, though: I may be misunderstanding how the character encoding works). I have checked that Clang and GCC produce reasonable-looking assembly for this if we make what we&apos;re doing clear enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551560</commentid>
    <comment_count>1</comment_count>
      <attachid>373805</attachid>
    <who name="Saagar Jha">saagarjha</who>
    <bug_when>2019-07-09 18:34:56 -0700</bug_when>
    <thetext>Created attachment 373805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551563</commentid>
    <comment_count>2</comment_count>
      <attachid>373806</attachid>
    <who name="Saagar Jha">saagarjha</who>
    <bug_when>2019-07-09 18:42:11 -0700</bug_when>
    <thetext>Created attachment 373806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552432</commentid>
    <comment_count>3</comment_count>
    <who name="Saagar Jha">saagarjha</who>
    <bug_when>2019-07-12 09:21:22 -0700</bug_when>
    <thetext>Here&apos;s the results of running JetStream2 on my computer; I&apos;m not seeing a huge performance difference (as expected: generated code is pretty much functionally identical until we go past 16-byte comparisons, at which point the memcmp method starts emitting SSE vectorized instructions). It&apos;s possible that there&apos;s some difference that&apos;s statistically significant in here, but I didn&apos;t find any…

|-------------------------------------|------------------------------------|
| Old                                 | New                                |
|-------------------------------------| -----------------------------------|
| Starting JetStream2                 | Starting JetStream2                |
| Running WSL:                        | Running WSL:                       |
|     Stdlib: 0.898                   |     Stdlib: 0.918                  |
|     Tests: 0.332                    |     Tests: 0.338                   |
|     Score: 0.546                    |     Score: 0.557                   |
|     Wall time: 0:20.659             |     Wall time: 0:20.270            |
| Running UniPoker:                   | Running UniPoker:                  |
|     Startup: 106.383                |     Startup: 128.205               |
|     Worst Case: 162.602             |     Worst Case: 165.289            |
|     Average: 223.265                |     Average: 240.307               |
|     Score: 156.894                  |     Score: 172.044                 |
|     Wall time: 0:02.716             |     Wall time: 0:02.518            |
| Running uglify-js-wtb:              | Running uglify-js-wtb:             |
|     Startup: 6.766                  |     Startup: 6.460                 |
|     Worst Case: 11.494              |     Worst Case: 12.658             |
|     Average: 12.415                 |     Average: 13.459                |
|     Score: 9.884                    |     Score: 10.325                  |
|     Wall time: 0:03.334             |     Wall time: 0:03.085            |
| Running typescript:                 | Running typescript:                |
|     Startup: 5.107                  |     Startup: 5.285                 |
|     Worst Case: 8.826               |     Worst Case: 9.217              |
|     Average: 10.779                 |     Average: 11.182                |
|     Score: 7.862                    |     Score: 8.167                   |
|     Wall time: 0:07.512             |     Wall time: 0:07.245            |
| Running tsf-wasm:                   | Running tsf-wasm:                  |
|     Startup: 73.529                 |     Startup: 79.365                |
|     Run time: 1.652                 |     Run time: 1.653                |
|     Score: 11.021                   |     Score: 11.455                  |
| Running tagcloud-SP:                | Running tagcloud-SP:               |
|     Startup: 131.579                |     Startup: 135.135               |
|     Worst Case: 155.039             |     Worst Case: 138.889            |
|     Average: 177.294                |     Average: 179.541               |
|     Score: 153.500                  |     Score: 149.922                 |
|     Wall time: 0:03.396             |     Wall time: 0:03.353            |
| Running string-unpack-code-SP:      | Running string-unpack-code-SP:     |
|     Startup: 192.308                |     Startup: 200                   |
|     Worst Case: 210.526             |     Worst Case: 140.845            |
|     Average: 232.422                |     Average: 228.846               |
|     Score: 211.119                  |     Score: 186.111                 |
|     Wall time: 0:02.589             |     Wall time: 0:02.626            |
| Running stanford-crypto-sha256:     | Running stanford-crypto-sha256:    |
|     Startup: 200                    |     Startup: 238.095               |
|     Worst Case: 350.877             |     Worst Case: 333.333            |
|     Average: 403.390                |     Average: 401.214               |
|     Score: 304.768                  |     Score: 316.958                 |
|     Wall time: 0:01.503             |     Wall time: 0:01.507            |
| Running stanford-crypto-pbkdf2:     | Running stanford-crypto-pbkdf2:    |
|     Startup: 217.391                |     Startup: 238.095               |
|     Worst Case: 208.333             |     Worst Case: 204.082            |
|     Average: 295.873                |     Average: 275.846               |
|     Score: 237.521                  |     Score: 237.542                 |
|     Wall time: 0:02.035             |     Wall time: 0:02.180            |
| Running stanford-crypto-aes:        | Running stanford-crypto-aes:       |
|     Startup: 147.059                |     Startup: 161.290               |
|     Worst Case: 204.082             |     Worst Case: 273.973            |
|     Average: 307.653                |     Average: 321.274               |
|     Score: 209.790                  |     Score: 242.138                 |
|     Wall time: 0:01.990             |     Wall time: 0:01.900            |
| Running splay:                      | Running splay:                     |
|     Startup: 208.333                |     Startup: 217.391               |
|     Worst Case: 140.845             |     Worst Case: 119.048            |
|     Average: 318.352                |     Average: 328.366               |
|     Score: 210.605                  |     Score: 204.068                 |
|     Wall time: 0:01.925             |     Wall time: 0:01.870            |
| Running richards-wasm:              | Running richards-wasm:             |
|     Startup: 277.778                |     Startup: 238.095               |
|     Run time: 3.794                 |     Run time: 4.013                |
|     Score: 32.462                   |     Score: 30.910                  |
| Running richards:                   | Running richards:                  |
|     Startup: 238.095                |     Startup: 238.095               |
|     Worst Case: 625                 |     Worst Case: 625                |
|     Average: 683.908                |     Average: 697.538               |
|     Score: 466.885                  |     Score: 469.966                 |
|     Wall time: 0:00.892             |     Wall time: 0:00.875            |
| Running regexp:                     | Running regexp:                    |
|     Startup: 200                    |     Startup: 178.571               |
|     Worst Case: 176.991             |     Worst Case: 168.067            |
|     Average: 211.443                |     Average: 217.949               |
|     Score: 195.610                  |     Score: 187.018                 |
|     Wall time: 0:02.893             |     Wall time: 0:02.815            |
| Running regex-dna-SP:               | Running regex-dna-SP:              |
|     Startup: 294.118                |     Startup: 263.158               |
|     Worst Case: 250                 |     Worst Case: 256.410            |
|     Average: 288.975                |     Average: 299.597               |
|     Score: 276.975                  |     Score: 272.414                 |
|     Wall time: 0:02.078             |     Wall time: 0:02.007            |
| Running raytrace:                   | Running raytrace:                  |
|     Startup: 151.515                |     Startup: 147.059               |
|     Worst Case: 312.500             |     Worst Case: 317.460            |
|     Average: 690.255                |     Average: 704.976               |
|     Score: 319.722                  |     Score: 320.468                 |
|     Wall time: 0:00.897             |     Wall time: 0:00.880            |
| Running quicksort-wasm:             | Running quicksort-wasm:            |
|     Startup: 357.143                |     Startup: 333.333               |
|     Run time: 125                   |     Run time: 142.857              |
|     Score: 211.289                  |     Score: 218.218                 |
| Running prepack-wtb:                | Running prepack-wtb:               |
|     Startup: 10.965                 |     Startup: 10.893                |
|     Worst Case: 19.763              |     Worst Case: 16.234             |
|     Average: 25.126                 |     Average: 25.641                |
|     Score: 17.592                   |     Score: 16.551                  |
|     Wall time: 0:02.118             |     Wall time: 0:02.049            |
| Running pdfjs:                      | Running pdfjs:                     |
|     Startup: 54.348                 |     Startup: 53.763                |
|     Worst Case: 87.336              |     Worst Case: 90.090             |
|     Average: 139.312                |     Average: 139.803               |
|     Score: 87.121                   |     Score: 87.813                  |
|     Wall time: 0:04.453             |     Wall time: 0:04.439            |
| Running OfflineAssembler:           | Running OfflineAssembler:          |
|     Startup: 38.168                 |     Startup: 38.760                |
|     Worst Case: 67.568              |     Worst Case: 68.259             |
|     Average: 79.525                 |     Average: 84.800                |
|     Score: 58.972                   |     Score: 60.764                  |
|     Wall time: 0:05.129             |     Wall time: 0:04.817            |
| Running octane-zlib:                | Running octane-zlib:               |
|     Startup: 7.680                  |     Startup: 7.886                 |
|     Worst Case: 20.964              |     Worst Case: 21.097             |
|     Average: 21.598                 |     Average: 21.558                |
|     Score: 15.151                   |     Score: 15.308                  |
|     Wall time: 0:03.893             |     Wall time: 0:03.883            |
| Running octane-code-load:           | Running octane-code-load:          |
|     Startup: 384.615                |     Startup: 384.615               |
|     Worst Case: 444.444             |     Worst Case: 454.545            |
|     Average: 500                    |     Average: 515.598               |
|     Score: 440.492                  |     Score: 448.372                 |
|     Wall time: 0:01.204             |     Wall time: 0:01.169            |
| Running navier-stokes:              | Running navier-stokes:             |
|     Startup: 312.500                |     Startup: 312.500               |
|     Worst Case: 666.667             |     Worst Case: 666.667            |
|     Average: 829.847                |     Average: 828.691               |
|     Score: 557.082                  |     Score: 556.823                 |
|     Wall time: 0:00.736             |     Wall time: 0:00.737            |
| Running n-body-SP:                  | Running n-body-SP:                 |
|     Startup: 312.500                |     Startup: 312.500               |
|     Worst Case: 408.163             |     Worst Case: 408.163            |
|     Average: 448.380                |     Average: 456.639               |
|     Score: 385.280                  |     Score: 387.631                 |
|     Wall time: 0:01.344             |     Wall time: 0:01.321            |
| Running multi-inspector-code-load:  | Running multi-inspector-code-load: |
|     Startup: 128.205                |     Startup: 131.579               |
|     Worst Case: 121.212             |     Worst Case: 109.890            |
|     Average: 384.367                |     Average: 384.615               |
|     Score: 181.440                  |     Score: 177.170                 |
|     Wall time: 0:01.656             |     Wall time: 0:01.645            |
| Running ML:                         | Running ML:                        |
|     Startup: 43.103                 |     Startup: 43.860                |
|     Worst Case: 51.414              |     Worst Case: 51.948             |
|     Average: 70.055                 |     Average: 71.619                |
|     Score: 53.746                   |     Score: 54.646                  |
|     Wall time: 0:04.341             |     Wall time: 0:04.248            |
| Running mandreel:                   | Running mandreel:                  |
|     Startup: 29.762                 |     Startup: 31.056                |
|     Worst Case: 85.106              |     Worst Case: 84.034             |
|     Average: 105.728                |     Average: 108.190               |
|     Score: 64.457                   |     Score: 65.604                  |
|     Wall time: 0:04.354             |     Wall time: 0:04.251            |
| Running lebab-wtb:                  | Running lebab-wtb:                 |
|     Startup: 13.021                 |     Startup: 13.333                |
|     Worst Case: 22.624              |     Worst Case: 23.810             |
|     Average: 25.608                 |     Average: 27.137                |
|     Score: 19.612                   |     Score: 20.500                  |
|     Wall time: 0:01.985             |     Wall time: 0:01.913            |
| Running json-stringify-inspector:   | Running json-stringify-inspector:  |
|     Startup: 104.167                |     Startup: 106.383               |
|     Worst Case: 107.527             |     Worst Case: 107.527            |
|     Average: 112.693                |     Average: 113.365               |
|     Score: 108.072                  |     Score: 109.049                 |
|     Wall time: 0:01.107             |     Wall time: 0:01.096            |
| Running json-parse-inspector:       | Running json-parse-inspector:      |
|     Startup: 104.167                |     Startup: 111.111               |
|     Worst Case: 86.957              |     Worst Case: 91.743             |
|     Average: 103.486                |     Average: 110.081               |
|     Score: 97.867                   |     Score: 103.916                 |
|     Wall time: 0:01.048             |     Wall time: 0:00.989            |
| Running jshint-wtb:                 | Running jshint-wtb:                |
|     Startup: 11.111                 |     Startup: 11.086                |
|     Worst Case: 15.106              |     Worst Case: 16.026             |
|     Average: 17.575                 |     Average: 18.657                |
|     Score: 14.342                   |     Score: 14.910                  |
|     Wall time: 0:02.042             |     Wall time: 0:01.957            |
| Running HashSet-wasm:               | Running HashSet-wasm:              |
|     Startup: 28.736                 |     Startup: 34.014                |
|     Run time: 5.092                 |     Run time: 5.102                |
|     Score: 12.096                   |     Score: 13.173                  |
| Running hash-map:                   | Running hash-map:                  |
|     Startup: 151.515                |     Startup: 156.250               |
|     Worst Case: 266.667             |     Worst Case: 192.308            |
|     Average: 337.302                |     Average: 333.707               |
|     Score: 238.862                  |     Score: 215.639                 |
|     Wall time: 0:01.798             |     Wall time: 0:01.817            |
| Running gcc-loops-wasm:             | Running gcc-loops-wasm:            |
|     Startup: 119.048                |     Startup: 81.967                |
|     Run time: 0.433                 |     Run time: 0.440                |
|     Score: 7.178                    |     Score: 6.006                   |
| Running gbemu:                      | Running gbemu:                     |
|     Startup: 39.370                 |     Startup: 38.462                |
|     Worst Case: 86.580              |     Worst Case: 84.746             |
|     Average: 140.496                |     Average: 135.969               |
|     Score: 78.238                   |     Score: 76.242                  |
|     Wall time: 0:04.382             |     Wall time: 0:04.524            |
| Running gaussian-blur:              | Running gaussian-blur:             |
|     Startup: 161.290                |     Startup: 156.250               |
|     Worst Case: 235.294             |     Worst Case: 224.719            |
|     Average: 253.084                |     Average: 261.538               |
|     Score: 212.566                  |     Score: 209.411                 |
|     Wall time: 0:02.393             |     Wall time: 0:02.316            |
| Running float-mm.c:                 | Running float-mm.c:                |
|     Startup: 5.513                  |     Startup: 5.453                 |
|     Worst Case: 5.470               |     Worst Case: 5.525              |
|     Average: 5.652                  |     Average: 5.724                 |
|     Score: 5.544                    |     Score: 5.566                   |
|     Wall time: 0:13.298             |     Wall time: 0:13.151            |
| Running FlightPlanner:              | Running FlightPlanner:             |
|     Startup: 161.290                |     Startup: 178.571               |
|     Worst Case: 434.783             |     Worst Case: 454.545            |
|     Average: 557.116                |     Average: 563.981               |
|     Score: 339.319                  |     Score: 357.727                 |
|     Wall time: 0:01.679             |     Wall time: 0:01.614            |
| Running first-inspector-code-load:  | Running first-inspector-code-load: |
|     Startup: 121.951                |     Startup: 125                   |
|     Worst Case: 117.647             |     Worst Case: 117.647            |
|     Average: 126.731                |     Average: 128.399               |
|     Score: 122.053                  |     Score: 123.600                 |
|     Wall time: 0:04.769             |     Wall time: 0:04.735            |
| Running espree-wtb:                 | Running espree-wtb:                |
|     Startup: 16.077                 |     Startup: 15.823                |
|     Worst Case: 25.773              |     Worst Case: 24.272             |
|     Average: 27.510                 |     Average: 27.322                |
|     Score: 22.506                   |     Score: 21.893                  |
|     Wall time: 0:01.484             |     Wall time: 0:01.488            |
| Running earley-boyer:               | Running earley-boyer:              |
|     Startup: 227.273                |     Startup: 238.095               |
|     Worst Case: 400                 |     Worst Case: 434.783            |
|     Average: 836.850                |     Average: 877.581               |
|     Score: 423.726                  |     Score: 449.542                 |
|     Wall time: 0:00.742             |     Wall time: 0:00.709            |
| Running delta-blue:                 | Running delta-blue:                |
|     Startup: 185.185                |     Startup: 192.308               |
|     Worst Case: 555.556             |     Worst Case: 588.235            |
|     Average: 1018.836               |     Average: 1010.187              |
|     Score: 471.497                  |     Score: 485.270                 |
|     Wall time: 0:00.613             |     Wall time: 0:00.617            |
| Running date-format-xparb-SP:       | Running date-format-xparb-SP:      |
|     Startup: 135.135                |     Startup: 135.135               |
|     Worst Case: 143.885             |     Worst Case: 136.054            |
|     Average: 160.291                |     Average: 150.595               |
|     Score: 146.071                  |     Score: 140.420                 |
|     Wall time: 0:03.754             |     Wall time: 0:03.991            |
| Running date-format-tofte-SP:       | Running date-format-tofte-SP:      |
|     Startup: 100                    |     Startup: 100                   |
|     Worst Case: 133.333             |     Worst Case: 130.719            |
|     Average: 150.747                |     Average: 149.310               |
|     Score: 126.201                  |     Score: 124.971                 |
|     Wall time: 0:03.999             |     Wall time: 0:04.036            |
| Running crypto-sha1-SP:             | Running crypto-sha1-SP:            |
|     Startup: 277.778                |     Startup: 277.778               |
|     Worst Case: 392.157             |     Worst Case: 425.532            |
|     Average: 592.040                |     Average: 604.675               |
|     Score: 401.023                  |     Score: 415.002                 |
|     Wall time: 0:01.024             |     Wall time: 0:01.004            |
| Running crypto-md5-SP:              | Running crypto-md5-SP:             |
|     Startup: 250                    |     Startup: 263.158               |
|     Worst Case: 444.444             |     Worst Case: 444.444            |
|     Average: 501.686                |     Average: 508.547               |
|     Score: 382.000                  |     Score: 390.351                 |
|     Wall time: 0:01.207             |     Wall time: 0:01.190            |
| Running crypto-aes-SP:              | Running crypto-aes-SP:             |
|     Startup: 238.095                |     Startup: 238.095               |
|     Worst Case: 285.714             |     Worst Case: 338.983            |
|     Average: 476.763                |     Average: 489.712               |
|     Score: 318.905                  |     Score: 340.635                 |
|     Wall time: 0:01.272             |     Wall time: 0:01.237            |
| Running crypto:                     | Running crypto:                    |
|     Startup: 384.615                |     Startup: 384.615               |
|     Worst Case: 833.333             |     Worst Case: 800                |
|     Average: 1054.965               |     Average: 1079.855              |
|     Score: 696.671                  |     Score: 692.618                 |
|     Wall time: 0:00.581             |     Wall time: 0:00.568            |
| Running coffeescript-wtb:           | Running coffeescript-wtb:          |
|     Startup: 11.628                 |     Startup: 11.848                |
|     Worst Case: 17.241              |     Worst Case: 16.722             |
|     Average: 19.048                 |     Average: 19.960                |
|     Score: 15.630                   |     Score: 15.814                  |
|     Wall time: 0:01.911             |     Wall time: 0:01.850            |
| Running chai-wtb:                   | Running chai-wtb:                  |
|     Startup: 24.876                 |     Startup: 25                    |
|     Worst Case: 38.760              |     Worst Case: 38.168             |
|     Average: 42.735                 |     Average: 42.194                |
|     Score: 34.539                   |     Score: 34.274                  |
|     Wall time: 0:01.092             |     Wall time: 0:01.082            |
| Running cdjs:                       | Running cdjs:                      |
|     Startup: 30.120                 |     Startup: 31.847                |
|     Worst Case: 32.328              |     Worst Case: 32.397             |
|     Average: 36.299                 |     Average: 36.090                |
|     Score: 32.818                   |     Score: 33.393                  |
|     Wall time: 0:08.295             |     Wall time: 0:08.335            |
| Running Box2D:                      | Running Box2D:                     |
|     Startup: 60.241                 |     Startup: 60.241                |
|     Worst Case: 259.740             |     Worst Case: 259.740            |
|     Average: 434.307                |     Average: 438.144               |
|     Score: 189.413                  |     Score: 189.969                 |
|     Wall time: 0:01.467             |     Wall time: 0:01.456            |
| Running Basic:                      | Running Basic:                     |
|     Startup: 116.279                |     Startup: 119.048               |
|     Worst Case: 238.095             |     Worst Case: 289.855            |
|     Average: 421.986                |     Average: 562.914               |
|     Score: 226.908                  |     Score: 268.812                 |
|     Wall time: 0:01.455             |     Wall time: 0:01.101            |
| Running base64-SP:                  | Running base64-SP:                 |
|     Startup: 250                    |     Startup: 238.095               |
|     Worst Case: 285.714             |     Worst Case: 294.118            |
|     Average: 409.498                |     Average: 415.793               |
|     Score: 308.111                  |     Score: 307.645                 |
|     Wall time: 0:01.474             |     Wall time: 0:01.453            |
| Running babylon-wtb:                | Running babylon-wtb:               |
|     Startup: 15.974                 |     Startup: 16.340                |
|     Worst Case: 28.902              |     Worst Case: 29.070             |
|     Average: 31.299                 |     Average: 31.646                |
|     Score: 24.357                   |     Score: 24.679                  |
|     Wall time: 0:01.378             |     Wall time: 0:01.353            |
| Running Babylon:                    | Running Babylon:                   |
|     Startup: 78.125                 |     Startup: 79.365                |
|     Worst Case: 303.030             |     Worst Case: 227.273            |
|     Average: 498.325                |     Average: 501.686               |
|     Score: 227.648                  |     Score: 208.387                 |
|     Wall time: 0:01.268             |     Wall time: 0:01.260            |
| Running async-fs:                   | Running async-fs:                  |
|     Startup: 59.524                 |     Startup: 60.241                |
|     Worst Case: 75.377              |     Worst Case: 90.909             |
|     Average: 100.464                |     Average: 102.362               |
|     Score: 76.674                   |     Score: 82.454                  |
|     Wall time: 0:02.026             |     Wall time: 0:01.990            |
| Running Air:                        | Running Air:                       |
|     Startup: 50.505                 |     Startup: 49.020                |
|     Worst Case: 186.916             |     Worst Case: 168.067            |
|     Average: 648.855                |     Average: 650.273               |
|     Score: 182.968                  |     Score: 174.978                 |
|     Wall time: 0:01.028             |     Wall time: 0:01.028            |
| Running ai-astar:                   | Running ai-astar:                  |
|     Startup: 250                    |     Startup: 250                   |
|     Worst Case: 240.964             |     Worst Case: 303.030            |
|     Average: 382.883                |     Average: 396.667               |
|     Score: 284.655                  |     Score: 310.898                 |
|     Wall time: 0:01.642             |     Wall time: 0:01.587            |
| Running acorn-wtb:                  | Running acorn-wtb:                 |
|     Startup: 15.060                 |     Startup: 15.432                |
|     Worst Case: 25.773              |     Worst Case: 26.178             |
|     Average: 29.455                 |     Average: 28.571                |
|     Score: 22.528                   |     Score: 22.599                  |
|     Wall time: 0:01.437             |     Wall time: 0:01.430            |
| Running 3d-raytrace-SP:             | Running 3d-raytrace-SP:            |
|     Startup: 156.250                |     Startup: 156.250               |
|     Worst Case: 198.020             |     Worst Case: 253.165            |
|     Average: 313.819                |     Average: 329.093               |
|     Score: 213.338                  |     Score: 235.241                 |
|     Wall time: 0:01.930             |     Wall time: 0:01.841            |
| Running 3d-cube-SP:                 | Running 3d-cube-SP:                |
|     Startup: 166.667                |     Startup: 172.414               |
|     Worst Case: 303.030             |     Worst Case: 285.714            |
|     Average: 344.130                |     Average: 356.929               |
|     Score: 259.031                  |     Score: 260.033                 |
|     Wall time: 0:01.760             |     Wall time: 0:01.697            |
|                                     |                                    |
|                                     |                                    |
| Stdlib: 0.898                       | Stdlib: 0.918                      |
| MainRun: 0.332                      | MainRun: 0.338                     |
| First: 78.720                       | First: 80.064                      |
| Worst: 121.695                      | Worst: 121.508                     |
| Average: 163.034                    | Average: 166.564                   |
| Startup: 120.068                    | Startup: 111.921                   |
| Runtime: 4.440                      | Runtime: 4.630                     |
|                                     |                                    |
| Total Score:  93.426                | Total Score:  94.389               |
|-------------------------------------|------------------------------------|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552891</commentid>
    <comment_count>4</comment_count>
      <attachid>373806</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-15 11:27:28 -0700</bug_when>
    <thetext>Comment on attachment 373806
Patch

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

r=me with nit.

&gt; Source/JavaScriptCore/KeywordLookupGenerator.py:170
&gt; +                    needle = &quot;(Char []){&quot; + &quot;, &quot;.join([&quot;&apos;%s&apos;&quot; % (c) for c in test]) + &quot;}&quot;

Can you change it to &quot;static_cast&quot; instead of C-style cast?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553000</commentid>
    <comment_count>5</comment_count>
      <attachid>374157</attachid>
    <who name="Saagar Jha">saagarjha</who>
    <bug_when>2019-07-15 15:38:08 -0700</bug_when>
    <thetext>Created attachment 374157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553002</commentid>
    <comment_count>6</comment_count>
    <who name="Saagar Jha">saagarjha</who>
    <bug_when>2019-07-15 15:42:58 -0700</bug_when>
    <thetext>The declaration you&apos;re pointing to is a compound literal, not a cast. In any case, I&apos;ve replaced it with std::array instead because it optimizes better and allowed me to remove the complexity around specializing Lexer::parseKeyword for each character type. The new patch generates identical assembly and benchmarks the same on my machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553004</commentid>
    <comment_count>7</comment_count>
      <attachid>374157</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-15 15:46:36 -0700</bug_when>
    <thetext>Comment on attachment 374157
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553053</commentid>
    <comment_count>8</comment_count>
      <attachid>374157</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-15 17:42:33 -0700</bug_when>
    <thetext>Comment on attachment 374157
Patch

Clearing flags on attachment: 374157

Committed r247463: &lt;https://trac.webkit.org/changeset/247463&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553054</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-15 17:42:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553057</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-15 17:44:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/53131061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553528</commentid>
    <comment_count>11</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2019-07-17 09:03:36 -0700</bug_when>
    <thetext>(In reply to Saagar Jha from comment #0)
&gt; KeywordLookup.h rolls what appears to be its own custom memcmp to do string
&gt; matches, but it performs unaligned loads, reinterpret_casts, and in general
&gt; makes UBSan very unhappy. 

I don&apos;t think these constitute good reasons for landing changes to WebKit because:

- We intentionally use unaligned loads in some parts of the code.
- We intentionally use reinterpret_casts a lot.
- We intentionally do other things that UBSan doesn&apos;t agree with.

I don&apos;t think we want to change our conventions in regard to those features of the language.

&gt; I think we can use just use memcmp instead
&gt; (someone should check whether I can do this, though: I may be
&gt; misunderstanding how the character encoding works). I have checked that
&gt; Clang and GCC produce reasonable-looking assembly for this if we make what
&gt; we&apos;re doing clear enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553547</commentid>
    <comment_count>12</comment_count>
    <who name="Saagar Jha">saagarjha</who>
    <bug_when>2019-07-17 09:50:00 -0700</bug_when>
    <thetext>(In reply to Filip Pizlo from comment #11)
&gt; (In reply to Saagar Jha from comment #0)
&gt; 
&gt; I don&apos;t think these constitute good reasons for landing changes to WebKit
&gt; because:
&gt; 
&gt; - We intentionally use unaligned loads in some parts of the code.
&gt; - We intentionally use reinterpret_casts a lot.
&gt; - We intentionally do other things that UBSan doesn&apos;t agree with.
&gt; 
&gt; I don&apos;t think we want to change our conventions in regard to those features
&gt; of the language.

Note that the way WebKit was using these was not a &quot;feature of the language&quot;: strictly speaking, the code was invalid C++, and this patch ensures that the code cannot be miscompiled in the future. From a practical standpoint I understand that we already have undefined behavior in our code that we will never be able to completely remove (either because we can&apos;t find it, or because we need to do something that cannot be legally expressed in the language)–but I don&apos;t see why we should be opposed to changes that remove undefined behavior with no regression in execution speed (if JavaScript ever adds a long keyword, I think this change might actually *improve* performance). Especially if those changes replace a hundred lines of specialized and somewhat tedious macros with an easier-to-maintain solution ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553565</commentid>
    <comment_count>13</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2019-07-17 10:37:07 -0700</bug_when>
    <thetext>(In reply to Saagar Jha from comment #12)
&gt; (In reply to Filip Pizlo from comment #11)
&gt; &gt; (In reply to Saagar Jha from comment #0)
&gt; &gt; 
&gt; &gt; I don&apos;t think these constitute good reasons for landing changes to WebKit
&gt; &gt; because:
&gt; &gt; 
&gt; &gt; - We intentionally use unaligned loads in some parts of the code.
&gt; &gt; - We intentionally use reinterpret_casts a lot.
&gt; &gt; - We intentionally do other things that UBSan doesn&apos;t agree with.
&gt; &gt; 
&gt; &gt; I don&apos;t think we want to change our conventions in regard to those features
&gt; &gt; of the language.
&gt; 
&gt; Note that the way WebKit was using these was not a &quot;feature of the
&gt; language&quot;: strictly speaking, the code was invalid C++

Not &quot;was using&quot;.  Webkit is using these features in ways that we know are outside what the spec allows, because we don&apos;t program to the C++-in-the-spec.  Instead we program in the C++-that-compilers-implement.

&gt; , and this patch
&gt; ensures that the code cannot be miscompiled in the future. From a practical
&gt; standpoint I understand that we already have undefined behavior in our code
&gt; that we will never be able to completely remove (either because we can&apos;t
&gt; find it, or because we need to do something that cannot be legally expressed
&gt; in the language)–but I don&apos;t see why we should be opposed to changes that
&gt; remove undefined behavior with no regression in execution speed (if
&gt; JavaScript ever adds a long keyword, I think this change might actually
&gt; *improve* performance). Especially if those changes replace a hundred lines
&gt; of specialized and somewhat tedious macros with an easier-to-maintain
&gt; solution ;)

Because all changes carry probability of regression, sometimes regressions that are only discovered long after the change landed.

One of the best ways to ensure code quality is to reject frivolous changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568225</commentid>
    <comment_count>14</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-05 13:25:35 -0700</bug_when>
    <thetext>Our performance bots is saying that this causes 5% regression in JetStream2/multi-inspector-code-load, and 2.5% regression in JetStream2/first-inspector-code-load. Until we can fix this regression, I&apos;ll roll-out this patch for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568231</commentid>
    <comment_count>15</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2019-09-05 13:35:56 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #14)
&gt; Our performance bots is saying that this causes 5% regression in
&gt; JetStream2/multi-inspector-code-load, and 2.5% regression in
&gt; JetStream2/first-inspector-code-load. Until we can fix this regression, I&apos;ll
&gt; roll-out this patch for now.

Yeah let’s roll out. 

We should avoid these changes like the plague.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568244</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-05 14:07:43 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 201515</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373805</attachid>
            <date>2019-07-09 18:34:56 -0700</date>
            <delta_ts>2019-07-09 18:42:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199650-20190709183455.patch</filename>
            <type>text/plain</type>
            <size>9678</size>
            <attacher name="Saagar Jha">saagarjha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZGI1MDJjYzZhZTY4YjVhZmE2Mzg3OWExYWZhYmM2OTExYTNhOTZkLi5lNTdhZjE4NDk5ZWNhZjE4
ZTdhNTMxODViMzA3MGM0ZDg5ZmZhM2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxOS0wNy0wOSAgU2FhZ2FyIEpoYSAgPHNhYWdhcmpoYUBhcHBsZS5jb20+
CisKKyAgICAgICAgS2V5d29yZCBsb29rdXAgY2FuIHVzZSBtZW1jbXAgdG8gZ2V0IGFyb3VuZCB1
bmFsaWduZWQgbG9hZCB1bmRlZmluZWQgYmVoYXZpb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgS2V5d29yZExvb2t1cCdzIGhhbmQtcm9s
bGVkICJtZW1jbXAiIHdpdGggdGhlIHN0YW5kYXJkIHZlcnNpb24sIHdoaWNoIHJlZHVjZXMgdGhl
IG5lZWQgdG8gZGVhbCB3aXRoCisgICAgICAgIGVuZGlhbm5lc3MgYW5kIHVuYWxpZ25lZCBsb2Fk
cy4KKworICAgICAgICAqIEtleXdvcmRMb29rdXBHZW5lcmF0b3IucHk6CisgICAgICAgIChUcmll
LnByaW50U3ViVHJlZUFzQyk6IFVzZSBtZW1jbXAgaW5zdGVhZCBvZiBtYWNyb3MgdG8gdGVzdCBm
b3IgbWF0Y2hlcy4KKyAgICAgICAgKFRyaWUucHJpbnRBc0MpOiBBZGQgdW5zcGVjaWFsaXplZCB2
ZXJzaW9uIG9mIExleGVyOjpwYXJzZUtleXdvcmQgdGhhdCBpcyBjdXJyZW50bHkgdW51c2VkIGJ1
dCBhbGxvd3MgdGhlCisgICAgICAgIHNwZWNpYWxpemF0aW9ucyB0byBiZSByZW1vdmVkIG9uY2Ug
dGhlcmUgaXMgbm8gcGVyZm9ybWFuY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZW0uCisKIDIwMTkt
MDctMDggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
RW5hYmxlIEludGwuUGx1cmFsUnVsZXMgYW5kIEludGwuTnVtYmVyRm9ybWF0VG9QYXJ0cyBieSBk
ZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvS2V5d29yZExvb2t1cEdl
bmVyYXRvci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9y
LnB5CmluZGV4IGQxM2RhYmE2MWQyNDc1OGIwYTA2MmE5Njk1YTFlMTgyNTA5NGM0NmUuLjhkZTNl
MDU1MzJiMmUyNWUzZjE5YzAxM2UwNTIxZDEzMzQyZWM0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5CkBAIC0xNDEsNyArMTQxLDcgQEAg
Y2xhc3MgVHJpZToKICAgICAgICAgc3RyID0gbWFrZVBhZGRpbmcoaW5kZW50KQogCiAgICAgICAg
IGlmIHNlbGYudmFsdWUgIT0gTm9uZToKLSAgICAgICAgICAgIHByaW50KHN0ciArICJpZiAoIWlz
SWRlbnRQYXJ0SW5jbHVkaW5nRXNjYXBlKGNvZGUrJWQsIG1fY29kZUVuZCkpIHsiICUgKGxlbihz
ZWxmLmZ1bGxQcmVmaXgpKSkKKyAgICAgICAgICAgIHByaW50KHN0ciArICJpZiAoIWlzSWRlbnRQ
YXJ0SW5jbHVkaW5nRXNjYXBlKGNvZGUgKyAlZCwgbV9jb2RlRW5kKSkgeyIgJSAobGVuKHNlbGYu
ZnVsbFByZWZpeCkpKQogICAgICAgICAgICAgcHJpbnQoc3RyICsgIiAgICBpbnRlcm5hbFNoaWZ0
PCVkPigpOyIgJSBsZW4oc2VsZi5mdWxsUHJlZml4KSkKICAgICAgICAgICAgIHByaW50KHN0ciAr
ICIgICAgaWYgKHNob3VsZENyZWF0ZUlkZW50aWZpZXIpIikKICAgICAgICAgICAgIHByaW50KHN0
ciArICgiICAgICAgICBkYXRhLT5pZGVudCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT4lc0tleXdv
cmQ7IiAlIHNlbGYuZnVsbFByZWZpeCkpCkBAIC0xNTQsMTQgKzE1NCwyMSBAQCBjbGFzcyBUcmll
OgogICAgICAgICAgICAgaWYgKGJhc2VJbmRleCA+IDApIGFuZCAobGVuKGspID09IDMpOgogICAg
ICAgICAgICAgICAgIGJhc2VJbmRleCA9IGJhc2VJbmRleCAtIDEKICAgICAgICAgICAgICAgICBr
ID0gdHJpZS5mdWxsUHJlZml4W2Jhc2VJbmRleF0gKyBrCi0gICAgICAgICAgICB0ZXN0ID0gWygi
JyVzJyIgJSBjKSBmb3IgYyBpbiBrXQorICAgICAgICAgICAgdGVzdCA9IFsoIiVzIiAlIGMpIGZv
ciBjIGluIGtdCiAgICAgICAgICAgICBpZiBsZW4odGVzdCkgPT0gMToKLSAgICAgICAgICAgICAg
ICBjb21wYXJpc29uID0gImNvZGVbJWRdID09ICVzIiAlIChiYXNlSW5kZXgsIHRlc3RbMF0pCisg
ICAgICAgICAgICAgICAgY29tcGFyaXNvbiA9ICJjb2RlWyVkXSA9PSAnJXMnIiAlIChiYXNlSW5k
ZXgsIHRlc3RbMF0pCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGJhc2UgPSAi
Y29kZSIKICAgICAgICAgICAgICAgICBpZiBiYXNlSW5kZXggPiAwOgogICAgICAgICAgICAgICAg
ICAgICBiYXNlID0gImNvZGUgKyAlZCIgJSBiYXNlSW5kZXgKLSAgICAgICAgICAgICAgICBjb21w
YXJpc29uID0gKCJDT01QQVJFXyVkJXNTKCVzLCAiICUgKGxlbih0ZXN0KSwgdHlwZU5hbWUsIGJh
c2UpKSArICIsICIuam9pbih0ZXN0KSArICIpIgorICAgICAgICAgICAgICAgICMgcmRhcjovL3By
b2JsZW0vNTI4NTg3ODk6IENsYW5nIG1pc3NlcyBvcHRpbWl6YXRpb24gb3Bwb3J0dW5pdHkgd2hl
biB1c2luZyB0ZW1wb3JhcnkgYXJyYXkgaW5zdGVhZCBvZiBzdHJpbmcKKyAgICAgICAgICAgICAg
ICBpZiB0eXBlTmFtZSA9PSAiTENoYXIiOgorICAgICAgICAgICAgICAgICAgICBuZWVkbGUgPSAi
XCIiICsgIiIuam9pbih0ZXN0KSArICJcIiIKKyAgICAgICAgICAgICAgICBlbGlmIHR5cGVOYW1l
ID09ICJVQ2hhciI6CisgICAgICAgICAgICAgICAgICAgIG5lZWRsZSA9ICJ1XCIiICsgIiIuam9p
bih0ZXN0KSArICJcIiIKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICBuZWVkbGUgPSAiKENoYXIgW10peyIgKyAiLCAiLmpvaW4oWyInJXMnIiAlIChjKSBmb3IgYyBp
biB0ZXN0XSkgKyAifSIKKyAgICAgICAgICAgICAgICBjb21wYXJpc29uID0gKCIhbWVtY21wKCVz
LCAiICUgKGJhc2UpKSArIG5lZWRsZSArICIsICIgKyBfX2J1aWx0aW5zX18uc3RyKGxlbih0ZXN0
KSkgKyAiICogc2l6ZW9mKCIgKyB0eXBlTmFtZSArICIpKSIKICAgICAgICAgICAgIGlmIGl0ZW1D
b3VudCA9PSAwOgogICAgICAgICAgICAgICAgIHByaW50KHN0ciArICJpZiAoIiArIGNvbXBhcmlz
b24gKyAiKSB7IikKICAgICAgICAgICAgIGVsc2U6CkBAIC0xODksMTMgKzE5NiwxNCBAQCBjbGFz
cyBUcmllOgogICAgICAgICAjIG1heCBsZW5ndGggKyAxIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8g
YW55IGJvdW5kcyBjaGVja2luZyBhdCBhbGwKICAgICAgICAgcHJpbnQoInN0YXRpYyBjb25zdCBp
bnQgbWF4VG9rZW5MZW5ndGggPSAlZDsiICUgKHNlbGYubWF4TGVuZ3RoKCkgKyAxKSkKICAgICAg
ICAgcHJpbnQoIiIpCi0gICAgICAgIHByaW50KCJ0ZW1wbGF0ZSA8PiIpCi0gICAgICAgIHByaW50
KCJ0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRDcmVhdGVJZGVudGlmaWVyPiBBTFdBWVNfSU5MSU5FIEpT
VG9rZW5UeXBlIExleGVyPFVDaGFyPjo6cGFyc2VLZXl3b3JkKEpTVG9rZW5EYXRhKiBkYXRhKSIp
CisgICAgICAgIHByaW50KCJ0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcj4iKQorICAgICAgICBwcmlu
dCgidGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3JlYXRlSWRlbnRpZmllcj4gQUxXQVlTX0lOTElORSBK
U1Rva2VuVHlwZSBMZXhlcjxDaGFyPjo6cGFyc2VLZXl3b3JkKEpTVG9rZW5EYXRhKiBkYXRhKSIp
CiAgICAgICAgIHByaW50KCJ7IikKICAgICAgICAgcHJpbnQoIiAgICBBU1NFUlQobV9jb2RlRW5k
IC0gbV9jb2RlID49IG1heFRva2VuTGVuZ3RoKTsiKQorICAgICAgICBwcmludCgiICAgIHB1dHMo
XCJNQVJLRVJcIik7IikKICAgICAgICAgcHJpbnQoIiIpCi0gICAgICAgIHByaW50KCIgICAgY29u
c3QgVUNoYXIqIGNvZGUgPSBtX2NvZGU7IikKLSAgICAgICAgc2VsZi5wcmludFN1YlRyZWVBc0Mo
IlVDSEFSIiwgNCkKKyAgICAgICAgcHJpbnQoIiAgICBjb25zdCBDaGFyKiBjb2RlID0gbV9jb2Rl
OyIpCisgICAgICAgIHNlbGYucHJpbnRTdWJUcmVlQXNDKCJDaGFyIiwgNCkKICAgICAgICAgcHJp
bnQoIiAgICByZXR1cm4gSURFTlQ7IikKICAgICAgICAgcHJpbnQoIn0iKQogICAgICAgICBwcmlu
dCgiIikKQEAgLTIwNSw3ICsyMTMsMTggQEAgY2xhc3MgVHJpZToKICAgICAgICAgcHJpbnQoIiAg
ICBBU1NFUlQobV9jb2RlRW5kIC0gbV9jb2RlID49IG1heFRva2VuTGVuZ3RoKTsiKQogICAgICAg
ICBwcmludCgiIikKICAgICAgICAgcHJpbnQoIiAgICBjb25zdCBMQ2hhciogY29kZSA9IG1fY29k
ZTsiKQotICAgICAgICBzZWxmLnByaW50U3ViVHJlZUFzQygiQ0hBUiIsIDQpCisgICAgICAgIHNl
bGYucHJpbnRTdWJUcmVlQXNDKCJMQ2hhciIsIDQpCisgICAgICAgIHByaW50KCIgICAgcmV0dXJu
IElERU5UOyIpCisgICAgICAgIHByaW50KCJ9IikKKyAgICAgICAgcHJpbnQoIiIpCisgICAgICAg
IHByaW50KCJ0ZW1wbGF0ZSA8PiIpCisgICAgICAgIHByaW50KCJ0ZW1wbGF0ZSA8Ym9vbCBzaG91
bGRDcmVhdGVJZGVudGlmaWVyPiBBTFdBWVNfSU5MSU5FIEpTVG9rZW5UeXBlIExleGVyPFVDaGFy
Pjo6cGFyc2VLZXl3b3JkKEpTVG9rZW5EYXRhKiBkYXRhKSIpCisgICAgICAgIHByaW50KCJ7IikK
KyAgICAgICAgcHJpbnQoIiAgICBBU1NFUlQobV9jb2RlRW5kIC0gbV9jb2RlID49IG1heFRva2Vu
TGVuZ3RoKTsiKQorICAgICAgICBwcmludCgiICAgIHB1dHMoXCJNQVJLRVJcIik7IikKKyAgICAg
ICAgcHJpbnQoIiIpCisgICAgICAgIHByaW50KCIgICAgY29uc3QgVUNoYXIqIGNvZGUgPSBtX2Nv
ZGU7IikKKyAgICAgICAgc2VsZi5wcmludFN1YlRyZWVBc0MoIlVDaGFyIiwgNCkKICAgICAgICAg
cHJpbnQoIiAgICByZXR1cm4gSURFTlQ7IikKICAgICAgICAgcHJpbnQoIn0iKQogICAgICAgICBw
cmludCgiIikKQEAgLTIxOCw4OSArMjM3LDYgQEAgZm9yIGssIHYgaW4ga2V5d29yZHM6CiB0cmll
LmNvYWxlc2NlKCkKIHRyaWUuZmlsbE91dCgpCiBwcmludCgiLy8gVGhpcyBmaWxlIHdhcyBnZW5l
cmF0ZWQgYnkgS2V5d29yZExvb2t1cEdlbmVyYXRvci5weS4gIERvIG5vdCBlZGl0LiIpCi1wcmlu
dCgiIiIKLSNpZiBDUFUoTkVFRFNfQUxJR05FRF9BQ0NFU1MpCi0KLSNkZWZpbmUgQ09NUEFSRV8y
Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyKSBcXAotICAgICgoKGFkZHJlc3MpWzBdID09IGNo
YXIxKSAmJiAoKGFkZHJlc3MpWzFdID09IGNoYXIyKSkKLSNkZWZpbmUgQ09NUEFSRV80Q0hBUlMo
YWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpIFxcCi0gICAgKENPTVBBUkVfMkNI
QVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMikgJiYgQ09NUEFSRV8yQ0hBUlMoKGFkZHJlc3MpICsg
MiwgY2hhcjMsIGNoYXI0KSkKLSNkZWZpbmUgQ09NUEFSRV8yVUNIQVJTKGFkZHJlc3MsIGNoYXIx
LCBjaGFyMikgXFwKLSAgICAoKChhZGRyZXNzKVswXSA9PSBjaGFyMSkgJiYgKChhZGRyZXNzKVsx
XSA9PSBjaGFyMikpCi0jZGVmaW5lIENPTVBBUkVfNFVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hh
cjIsIGNoYXIzLCBjaGFyNCkgXFwKLSAgICAoQ09NUEFSRV8yVUNIQVJTKGFkZHJlc3MsIGNoYXIx
LCBjaGFyMikgJiYgQ09NUEFSRV8yVUNIQVJTKChhZGRyZXNzKSArIDIsIGNoYXIzLCBjaGFyNCkp
Ci0KLSNlbHNlIC8vIENQVShORUVEU19BTElHTkVEX0FDQ0VTUykKLQotI2lmIENQVShCSUdfRU5E
SUFOKQotCi0jZGVmaW5lIENIQVJQQUlSX1RPVUlOVDE2KGEsIGIpIFxcCi0gICAgKCgoKHVpbnQx
Nl90KShhKSkgPDwgOCkgKyAodWludDE2X3QpKGIpKQotI2RlZmluZSBDSEFSUVVBRF9UT1VJTlQz
MihhLCBiLCBjLCBkKSBcXAotICAgICgoKCh1aW50MzJfdCkoQ0hBUlBBSVJfVE9VSU5UMTYoYSwg
YikpKSA8PCAxNikgKyBDSEFSUEFJUl9UT1VJTlQxNihjLCBkKSkKLSNkZWZpbmUgVUNIQVJQQUlS
X1RPVUlOVDMyKGEsIGIpIFxcCi0gICAgKCgoKHVpbnQzMl90KShhKSkgPDwgMTYpICsgKHVpbnQz
Ml90KShiKSkKLSNkZWZpbmUgVUNIQVJRVUFEX1RPVUlOVDY0KGEsIGIsIGMsIGQpIFxcCi0gICAg
KCgoKHVpbnQ2NF90KShVQ0hBUlFVQURfVE9VSU5UNjQoYSwgYikpKSA8PCAzMikgKyBVQ0hBUlBB
SVJfVE9VSU5UMzIoYywgZCkpCi0KLSNlbHNlIC8vIENQVShCSUdfRU5ESUFOKQotCi0jZGVmaW5l
IENIQVJQQUlSX1RPVUlOVDE2KGEsIGIpIFxcCi0gICAgKCgoKHVpbnQxNl90KShiKSkgPDwgOCkg
KyAodWludDE2X3QpKGEpKQotI2RlZmluZSBDSEFSUVVBRF9UT1VJTlQzMihhLCBiLCBjLCBkKSBc
XAotICAgICgoKCh1aW50MzJfdCkoQ0hBUlBBSVJfVE9VSU5UMTYoYywgZCkpKSA8PCAxNikgKyBD
SEFSUEFJUl9UT1VJTlQxNihhLCBiKSkKLSNkZWZpbmUgVUNIQVJQQUlSX1RPVUlOVDMyKGEsIGIp
IFxcCi0gICAgKCgoKHVpbnQzMl90KShiKSkgPDwgMTYpICsgKHVpbnQzMl90KShhKSkKLSNkZWZp
bmUgVUNIQVJRVUFEX1RPVUlOVDY0KGEsIGIsIGMsIGQpIFxcCi0gICAgKCgoKHVpbnQ2NF90KShV
Q0hBUlBBSVJfVE9VSU5UMzIoYywgZCkpKSA8PCAzMikgKyBVQ0hBUlBBSVJfVE9VSU5UMzIoYSwg
YikpCi0KLSNlbmRpZiAvLyBDUFUoQklHX0VORElBTikKLQotCi0jZGVmaW5lIENPTVBBUkVfMkNI
QVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMikgXFwKLSAgICAoKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgdWludDE2X3QqPihhZGRyZXNzKSlbMF0gPT0gQ0hBUlBBSVJfVE9VSU5UMTYoY2hhcjEsIGNo
YXIyKSkKLSNkZWZpbmUgQ09NUEFSRV8yVUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMikgXFwK
LSAgICAoKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihhZGRyZXNzKSlbMF0gPT0g
VUNIQVJQQUlSX1RPVUlOVDMyKGNoYXIxLCBjaGFyMikpCi0KLSNpZiBDUFUoWDg2XzY0KQotCi0j
ZGVmaW5lIENPTVBBUkVfNENIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0
KSBcXAotICAgICgocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+KGFkZHJlc3MpKVsw
XSA9PSBDSEFSUVVBRF9UT1VJTlQzMihjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkpCi0jZGVm
aW5lIENPTVBBUkVfNFVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkg
XFwKLSAgICAoKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihhZGRyZXNzKSlbMF0g
PT0gVUNIQVJRVUFEX1RPVUlOVDY0KGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0KSkKLQotI2Vs
c2UgLy8gQ1BVKFg4Nl82NCkKLQotI2RlZmluZSBDT01QQVJFXzRDSEFSUyhhZGRyZXNzLCBjaGFy
MSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgXFwKLSAgICAoQ09NUEFSRV8yQ0hBUlMoYWRkcmVzcywg
Y2hhcjEsIGNoYXIyKSAmJiBDT01QQVJFXzJDSEFSUygoYWRkcmVzcykgKyAyLCBjaGFyMywgY2hh
cjQpKQotI2RlZmluZSBDT01QQVJFXzRVQ0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFy
MywgY2hhcjQpIFxcCi0gICAgKENPTVBBUkVfMlVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIp
ICYmIENPTVBBUkVfMlVDSEFSUygoYWRkcmVzcykgKyAyLCBjaGFyMywgY2hhcjQpKQotCi0jZW5k
aWYgLy8gQ1BVKFg4Nl82NCkKLQotI2VuZGlmIC8vIENQVShORUVEU19BTElHTkVEX0FDQ0VTUykK
LQotI2RlZmluZSBDT01QQVJFXzNDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzKSBc
XAotICAgIChDT01QQVJFXzJDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIpICYmICgoYWRkcmVz
cylbMl0gPT0gKGNoYXIzKSkpCi0jZGVmaW5lIENPTVBBUkVfM1VDSEFSUyhhZGRyZXNzLCBjaGFy
MSwgY2hhcjIsIGNoYXIzKSBcXAotICAgIChDT01QQVJFXzJVQ0hBUlMoYWRkcmVzcywgY2hhcjEs
IGNoYXIyKSAmJiAoKGFkZHJlc3MpWzJdID09IChjaGFyMykpKQotI2RlZmluZSBDT01QQVJFXzVD
SEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCwgY2hhcjUpIFxcCi0gICAg
KENPTVBBUkVfNENIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0KSAmJiAo
KGFkZHJlc3MpWzRdID09IChjaGFyNSkpKQotI2RlZmluZSBDT01QQVJFXzVVQ0hBUlMoYWRkcmVz
cywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQsIGNoYXI1KSBcXAotICAgIChDT01QQVJFXzRV
Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpICYmICgoYWRkcmVzcylb
NF0gPT0gKGNoYXI1KSkpCi0jZGVmaW5lIENPTVBBUkVfNkNIQVJTKGFkZHJlc3MsIGNoYXIxLCBj
aGFyMiwgY2hhcjMsIGNoYXI0LCBjaGFyNSwgY2hhcjYpIFxcCi0gICAgKENPTVBBUkVfNENIQVJT
KGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0KSAmJiBDT01QQVJFXzJDSEFSUyhh
ZGRyZXNzICsgNCwgY2hhcjUsIGNoYXI2KSkKLSNkZWZpbmUgQ09NUEFSRV82VUNIQVJTKGFkZHJl
c3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0LCBjaGFyNSwgY2hhcjYpIFxcCi0gICAgKENP
TVBBUkVfNFVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgJiYgQ09N
UEFSRV8yVUNIQVJTKGFkZHJlc3MgKyA0LCBjaGFyNSwgY2hhcjYpKQotI2RlZmluZSBDT01QQVJF
XzdDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCwgY2hhcjUsIGNoYXI2
LCBjaGFyNykgXFwKLSAgICAoQ09NUEFSRV80Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBj
aGFyMywgY2hhcjQpICYmIENPTVBBUkVfNENIQVJTKGFkZHJlc3MgKyAzLCBjaGFyNCwgY2hhcjUs
IGNoYXI2LCBjaGFyNykpCi0jZGVmaW5lIENPTVBBUkVfN1VDSEFSUyhhZGRyZXNzLCBjaGFyMSwg
Y2hhcjIsIGNoYXIzLCBjaGFyNCwgY2hhcjUsIGNoYXI2LCBjaGFyNykgXFwKLSAgICAoQ09NUEFS
RV80VUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0KSAmJiBDT01QQVJF
XzRVQ0hBUlMoYWRkcmVzcyArIDMsIGNoYXI0LCBjaGFyNSwgY2hhcjYsIGNoYXI3KSkKLSNkZWZp
bmUgQ09NUEFSRV84Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQsIGNo
YXI1LCBjaGFyNiwgY2hhcjcsIGNoYXI4KSBcXAotICAgIChDT01QQVJFXzRDSEFSUyhhZGRyZXNz
LCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgJiYgQ09NUEFSRV80Q0hBUlMoYWRkcmVzcyAr
IDQsIGNoYXI1LCBjaGFyNiwgY2hhcjcsIGNoYXI4KSkKLSNkZWZpbmUgQ09NUEFSRV84VUNIQVJT
KGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0LCBjaGFyNSwgY2hhcjYsIGNoYXI3
LCBjaGFyOCkgXFwKLSAgICAoQ09NUEFSRV80VUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwg
Y2hhcjMsIGNoYXI0KSAmJiBDT01QQVJFXzRVQ0hBUlMoYWRkcmVzcyArIDQsIGNoYXI1LCBjaGFy
NiwgY2hhcjcsIGNoYXI4KSkKLSIiIikKIAogdHJpZS5wcmludEFzQygpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373806</attachid>
            <date>2019-07-09 18:42:11 -0700</date>
            <delta_ts>2019-07-15 15:38:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199650-20190709184211.patch</filename>
            <type>text/plain</type>
            <size>9598</size>
            <attacher name="Saagar Jha">saagarjha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZGI1MDJjYzZhZTY4YjVhZmE2Mzg3OWExYWZhYmM2OTExYTNhOTZkLi5lNTdhZjE4NDk5ZWNhZjE4
ZTdhNTMxODViMzA3MGM0ZDg5ZmZhM2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxOS0wNy0wOSAgU2FhZ2FyIEpoYSAgPHNhYWdhcmpoYUBhcHBsZS5jb20+
CisKKyAgICAgICAgS2V5d29yZCBsb29rdXAgY2FuIHVzZSBtZW1jbXAgdG8gZ2V0IGFyb3VuZCB1
bmFsaWduZWQgbG9hZCB1bmRlZmluZWQgYmVoYXZpb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgS2V5d29yZExvb2t1cCdzIGhhbmQtcm9s
bGVkICJtZW1jbXAiIHdpdGggdGhlIHN0YW5kYXJkIHZlcnNpb24sIHdoaWNoIHJlZHVjZXMgdGhl
IG5lZWQgdG8gZGVhbCB3aXRoCisgICAgICAgIGVuZGlhbm5lc3MgYW5kIHVuYWxpZ25lZCBsb2Fk
cy4KKworICAgICAgICAqIEtleXdvcmRMb29rdXBHZW5lcmF0b3IucHk6CisgICAgICAgIChUcmll
LnByaW50U3ViVHJlZUFzQyk6IFVzZSBtZW1jbXAgaW5zdGVhZCBvZiBtYWNyb3MgdG8gdGVzdCBm
b3IgbWF0Y2hlcy4KKyAgICAgICAgKFRyaWUucHJpbnRBc0MpOiBBZGQgdW5zcGVjaWFsaXplZCB2
ZXJzaW9uIG9mIExleGVyOjpwYXJzZUtleXdvcmQgdGhhdCBpcyBjdXJyZW50bHkgdW51c2VkIGJ1
dCBhbGxvd3MgdGhlCisgICAgICAgIHNwZWNpYWxpemF0aW9ucyB0byBiZSByZW1vdmVkIG9uY2Ug
dGhlcmUgaXMgbm8gcGVyZm9ybWFuY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZW0uCisKIDIwMTkt
MDctMDggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
RW5hYmxlIEludGwuUGx1cmFsUnVsZXMgYW5kIEludGwuTnVtYmVyRm9ybWF0VG9QYXJ0cyBieSBk
ZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvS2V5d29yZExvb2t1cEdl
bmVyYXRvci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9y
LnB5CmluZGV4IGQxM2RhYmE2MWQyNDc1OGIwYTA2MmE5Njk1YTFlMTgyNTA5NGM0NmUuLmE3NzAy
OTYxZTljMTA1NDY5ODUxZDJmOTQ2ODdhNWE5ZTAzYWUwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5CkBAIC0xNDEsNyArMTQxLDcgQEAg
Y2xhc3MgVHJpZToKICAgICAgICAgc3RyID0gbWFrZVBhZGRpbmcoaW5kZW50KQogCiAgICAgICAg
IGlmIHNlbGYudmFsdWUgIT0gTm9uZToKLSAgICAgICAgICAgIHByaW50KHN0ciArICJpZiAoIWlz
SWRlbnRQYXJ0SW5jbHVkaW5nRXNjYXBlKGNvZGUrJWQsIG1fY29kZUVuZCkpIHsiICUgKGxlbihz
ZWxmLmZ1bGxQcmVmaXgpKSkKKyAgICAgICAgICAgIHByaW50KHN0ciArICJpZiAoIWlzSWRlbnRQ
YXJ0SW5jbHVkaW5nRXNjYXBlKGNvZGUgKyAlZCwgbV9jb2RlRW5kKSkgeyIgJSAobGVuKHNlbGYu
ZnVsbFByZWZpeCkpKQogICAgICAgICAgICAgcHJpbnQoc3RyICsgIiAgICBpbnRlcm5hbFNoaWZ0
PCVkPigpOyIgJSBsZW4oc2VsZi5mdWxsUHJlZml4KSkKICAgICAgICAgICAgIHByaW50KHN0ciAr
ICIgICAgaWYgKHNob3VsZENyZWF0ZUlkZW50aWZpZXIpIikKICAgICAgICAgICAgIHByaW50KHN0
ciArICgiICAgICAgICBkYXRhLT5pZGVudCA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT4lc0tleXdv
cmQ7IiAlIHNlbGYuZnVsbFByZWZpeCkpCkBAIC0xNTQsMTQgKzE1NCwyMSBAQCBjbGFzcyBUcmll
OgogICAgICAgICAgICAgaWYgKGJhc2VJbmRleCA+IDApIGFuZCAobGVuKGspID09IDMpOgogICAg
ICAgICAgICAgICAgIGJhc2VJbmRleCA9IGJhc2VJbmRleCAtIDEKICAgICAgICAgICAgICAgICBr
ID0gdHJpZS5mdWxsUHJlZml4W2Jhc2VJbmRleF0gKyBrCi0gICAgICAgICAgICB0ZXN0ID0gWygi
JyVzJyIgJSBjKSBmb3IgYyBpbiBrXQorICAgICAgICAgICAgdGVzdCA9IFsoIiVzIiAlIGMpIGZv
ciBjIGluIGtdCiAgICAgICAgICAgICBpZiBsZW4odGVzdCkgPT0gMToKLSAgICAgICAgICAgICAg
ICBjb21wYXJpc29uID0gImNvZGVbJWRdID09ICVzIiAlIChiYXNlSW5kZXgsIHRlc3RbMF0pCisg
ICAgICAgICAgICAgICAgY29tcGFyaXNvbiA9ICJjb2RlWyVkXSA9PSAnJXMnIiAlIChiYXNlSW5k
ZXgsIHRlc3RbMF0pCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGJhc2UgPSAi
Y29kZSIKICAgICAgICAgICAgICAgICBpZiBiYXNlSW5kZXggPiAwOgogICAgICAgICAgICAgICAg
ICAgICBiYXNlID0gImNvZGUgKyAlZCIgJSBiYXNlSW5kZXgKLSAgICAgICAgICAgICAgICBjb21w
YXJpc29uID0gKCJDT01QQVJFXyVkJXNTKCVzLCAiICUgKGxlbih0ZXN0KSwgdHlwZU5hbWUsIGJh
c2UpKSArICIsICIuam9pbih0ZXN0KSArICIpIgorICAgICAgICAgICAgICAgICMgcmRhcjovL3By
b2JsZW0vNTI4NTg3ODk6IENsYW5nIG1pc3NlcyBvcHRpbWl6YXRpb24gb3Bwb3J0dW5pdHkgd2hl
biB1c2luZyB0ZW1wb3JhcnkgYXJyYXkgaW5zdGVhZCBvZiBzdHJpbmcKKyAgICAgICAgICAgICAg
ICBpZiB0eXBlTmFtZSA9PSAiTENoYXIiOgorICAgICAgICAgICAgICAgICAgICBuZWVkbGUgPSAi
XCIiICsgIiIuam9pbih0ZXN0KSArICJcIiIKKyAgICAgICAgICAgICAgICBlbGlmIHR5cGVOYW1l
ID09ICJVQ2hhciI6CisgICAgICAgICAgICAgICAgICAgIG5lZWRsZSA9ICJ1XCIiICsgIiIuam9p
bih0ZXN0KSArICJcIiIKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICBuZWVkbGUgPSAiKENoYXIgW10peyIgKyAiLCAiLmpvaW4oWyInJXMnIiAlIChjKSBmb3IgYyBp
biB0ZXN0XSkgKyAifSIKKyAgICAgICAgICAgICAgICBjb21wYXJpc29uID0gKCIhbWVtY21wKCVz
LCAiICUgKGJhc2UpKSArIG5lZWRsZSArICIsICIgKyBfX2J1aWx0aW5zX18uc3RyKGxlbih0ZXN0
KSkgKyAiICogc2l6ZW9mKCIgKyB0eXBlTmFtZSArICIpKSIKICAgICAgICAgICAgIGlmIGl0ZW1D
b3VudCA9PSAwOgogICAgICAgICAgICAgICAgIHByaW50KHN0ciArICJpZiAoIiArIGNvbXBhcmlz
b24gKyAiKSB7IikKICAgICAgICAgICAgIGVsc2U6CkBAIC0xODksMTMgKzE5NiwxMyBAQCBjbGFz
cyBUcmllOgogICAgICAgICAjIG1heCBsZW5ndGggKyAxIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8g
YW55IGJvdW5kcyBjaGVja2luZyBhdCBhbGwKICAgICAgICAgcHJpbnQoInN0YXRpYyBjb25zdCBp
bnQgbWF4VG9rZW5MZW5ndGggPSAlZDsiICUgKHNlbGYubWF4TGVuZ3RoKCkgKyAxKSkKICAgICAg
ICAgcHJpbnQoIiIpCi0gICAgICAgIHByaW50KCJ0ZW1wbGF0ZSA8PiIpCi0gICAgICAgIHByaW50
KCJ0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRDcmVhdGVJZGVudGlmaWVyPiBBTFdBWVNfSU5MSU5FIEpT
VG9rZW5UeXBlIExleGVyPFVDaGFyPjo6cGFyc2VLZXl3b3JkKEpTVG9rZW5EYXRhKiBkYXRhKSIp
CisgICAgICAgIHByaW50KCJ0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcj4iKQorICAgICAgICBwcmlu
dCgidGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3JlYXRlSWRlbnRpZmllcj4gQUxXQVlTX0lOTElORSBK
U1Rva2VuVHlwZSBMZXhlcjxDaGFyPjo6cGFyc2VLZXl3b3JkKEpTVG9rZW5EYXRhKiBkYXRhKSIp
CiAgICAgICAgIHByaW50KCJ7IikKICAgICAgICAgcHJpbnQoIiAgICBBU1NFUlQobV9jb2RlRW5k
IC0gbV9jb2RlID49IG1heFRva2VuTGVuZ3RoKTsiKQogICAgICAgICBwcmludCgiIikKLSAgICAg
ICAgcHJpbnQoIiAgICBjb25zdCBVQ2hhciogY29kZSA9IG1fY29kZTsiKQotICAgICAgICBzZWxm
LnByaW50U3ViVHJlZUFzQygiVUNIQVIiLCA0KQorICAgICAgICBwcmludCgiICAgIGNvbnN0IENo
YXIqIGNvZGUgPSBtX2NvZGU7IikKKyAgICAgICAgc2VsZi5wcmludFN1YlRyZWVBc0MoIkNoYXIi
LCA0KQogICAgICAgICBwcmludCgiICAgIHJldHVybiBJREVOVDsiKQogICAgICAgICBwcmludCgi
fSIpCiAgICAgICAgIHByaW50KCIiKQpAQCAtMjA1LDcgKzIxMiwxNyBAQCBjbGFzcyBUcmllOgog
ICAgICAgICBwcmludCgiICAgIEFTU0VSVChtX2NvZGVFbmQgLSBtX2NvZGUgPj0gbWF4VG9rZW5M
ZW5ndGgpOyIpCiAgICAgICAgIHByaW50KCIiKQogICAgICAgICBwcmludCgiICAgIGNvbnN0IExD
aGFyKiBjb2RlID0gbV9jb2RlOyIpCi0gICAgICAgIHNlbGYucHJpbnRTdWJUcmVlQXNDKCJDSEFS
IiwgNCkKKyAgICAgICAgc2VsZi5wcmludFN1YlRyZWVBc0MoIkxDaGFyIiwgNCkKKyAgICAgICAg
cHJpbnQoIiAgICByZXR1cm4gSURFTlQ7IikKKyAgICAgICAgcHJpbnQoIn0iKQorICAgICAgICBw
cmludCgiIikKKyAgICAgICAgcHJpbnQoInRlbXBsYXRlIDw+IikKKyAgICAgICAgcHJpbnQoInRl
bXBsYXRlIDxib29sIHNob3VsZENyZWF0ZUlkZW50aWZpZXI+IEFMV0FZU19JTkxJTkUgSlNUb2tl
blR5cGUgTGV4ZXI8VUNoYXI+OjpwYXJzZUtleXdvcmQoSlNUb2tlbkRhdGEqIGRhdGEpIikKKyAg
ICAgICAgcHJpbnQoInsiKQorICAgICAgICBwcmludCgiICAgIEFTU0VSVChtX2NvZGVFbmQgLSBt
X2NvZGUgPj0gbWF4VG9rZW5MZW5ndGgpOyIpCisgICAgICAgIHByaW50KCIiKQorICAgICAgICBw
cmludCgiICAgIGNvbnN0IFVDaGFyKiBjb2RlID0gbV9jb2RlOyIpCisgICAgICAgIHNlbGYucHJp
bnRTdWJUcmVlQXNDKCJVQ2hhciIsIDQpCiAgICAgICAgIHByaW50KCIgICAgcmV0dXJuIElERU5U
OyIpCiAgICAgICAgIHByaW50KCJ9IikKICAgICAgICAgcHJpbnQoIiIpCkBAIC0yMTgsODkgKzIz
NSw2IEBAIGZvciBrLCB2IGluIGtleXdvcmRzOgogdHJpZS5jb2FsZXNjZSgpCiB0cmllLmZpbGxP
dXQoKQogcHJpbnQoIi8vIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IEtleXdvcmRMb29rdXBH
ZW5lcmF0b3IucHkuICBEbyBub3QgZWRpdC4iKQotcHJpbnQoIiIiCi0jaWYgQ1BVKE5FRURTX0FM
SUdORURfQUNDRVNTKQotCi0jZGVmaW5lIENPTVBBUkVfMkNIQVJTKGFkZHJlc3MsIGNoYXIxLCBj
aGFyMikgXFwKLSAgICAoKChhZGRyZXNzKVswXSA9PSBjaGFyMSkgJiYgKChhZGRyZXNzKVsxXSA9
PSBjaGFyMikpCi0jZGVmaW5lIENPTVBBUkVfNENIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwg
Y2hhcjMsIGNoYXI0KSBcXAotICAgIChDT01QQVJFXzJDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hh
cjIpICYmIENPTVBBUkVfMkNIQVJTKChhZGRyZXNzKSArIDIsIGNoYXIzLCBjaGFyNCkpCi0jZGVm
aW5lIENPTVBBUkVfMlVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIpIFxcCi0gICAgKCgoYWRk
cmVzcylbMF0gPT0gY2hhcjEpICYmICgoYWRkcmVzcylbMV0gPT0gY2hhcjIpKQotI2RlZmluZSBD
T01QQVJFXzRVQ0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpIFxcCi0g
ICAgKENPTVBBUkVfMlVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIpICYmIENPTVBBUkVfMlVD
SEFSUygoYWRkcmVzcykgKyAyLCBjaGFyMywgY2hhcjQpKQotCi0jZWxzZSAvLyBDUFUoTkVFRFNf
QUxJR05FRF9BQ0NFU1MpCi0KLSNpZiBDUFUoQklHX0VORElBTikKLQotI2RlZmluZSBDSEFSUEFJ
Ul9UT1VJTlQxNihhLCBiKSBcXAotICAgICgoKCh1aW50MTZfdCkoYSkpIDw8IDgpICsgKHVpbnQx
Nl90KShiKSkKLSNkZWZpbmUgQ0hBUlFVQURfVE9VSU5UMzIoYSwgYiwgYywgZCkgXFwKLSAgICAo
KCgodWludDMyX3QpKENIQVJQQUlSX1RPVUlOVDE2KGEsIGIpKSkgPDwgMTYpICsgQ0hBUlBBSVJf
VE9VSU5UMTYoYywgZCkpCi0jZGVmaW5lIFVDSEFSUEFJUl9UT1VJTlQzMihhLCBiKSBcXAotICAg
ICgoKCh1aW50MzJfdCkoYSkpIDw8IDE2KSArICh1aW50MzJfdCkoYikpCi0jZGVmaW5lIFVDSEFS
UVVBRF9UT1VJTlQ2NChhLCBiLCBjLCBkKSBcXAotICAgICgoKCh1aW50NjRfdCkoVUNIQVJRVUFE
X1RPVUlOVDY0KGEsIGIpKSkgPDwgMzIpICsgVUNIQVJQQUlSX1RPVUlOVDMyKGMsIGQpKQotCi0j
ZWxzZSAvLyBDUFUoQklHX0VORElBTikKLQotI2RlZmluZSBDSEFSUEFJUl9UT1VJTlQxNihhLCBi
KSBcXAotICAgICgoKCh1aW50MTZfdCkoYikpIDw8IDgpICsgKHVpbnQxNl90KShhKSkKLSNkZWZp
bmUgQ0hBUlFVQURfVE9VSU5UMzIoYSwgYiwgYywgZCkgXFwKLSAgICAoKCgodWludDMyX3QpKENI
QVJQQUlSX1RPVUlOVDE2KGMsIGQpKSkgPDwgMTYpICsgQ0hBUlBBSVJfVE9VSU5UMTYoYSwgYikp
Ci0jZGVmaW5lIFVDSEFSUEFJUl9UT1VJTlQzMihhLCBiKSBcXAotICAgICgoKCh1aW50MzJfdCko
YikpIDw8IDE2KSArICh1aW50MzJfdCkoYSkpCi0jZGVmaW5lIFVDSEFSUVVBRF9UT1VJTlQ2NChh
LCBiLCBjLCBkKSBcXAotICAgICgoKCh1aW50NjRfdCkoVUNIQVJQQUlSX1RPVUlOVDMyKGMsIGQp
KSkgPDwgMzIpICsgVUNIQVJQQUlSX1RPVUlOVDMyKGEsIGIpKQotCi0jZW5kaWYgLy8gQ1BVKEJJ
R19FTkRJQU4pCi0KLQotI2RlZmluZSBDT01QQVJFXzJDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hh
cjIpIFxcCi0gICAgKChyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQxNl90Kj4oYWRkcmVzcykp
WzBdID09IENIQVJQQUlSX1RPVUlOVDE2KGNoYXIxLCBjaGFyMikpCi0jZGVmaW5lIENPTVBBUkVf
MlVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIpIFxcCi0gICAgKChyZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQzMl90Kj4oYWRkcmVzcykpWzBdID09IFVDSEFSUEFJUl9UT1VJTlQzMihjaGFy
MSwgY2hhcjIpKQotCi0jaWYgQ1BVKFg4Nl82NCkKLQotI2RlZmluZSBDT01QQVJFXzRDSEFSUyhh
ZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgXFwKLSAgICAoKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihhZGRyZXNzKSlbMF0gPT0gQ0hBUlFVQURfVE9VSU5UMzIo
Y2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpKQotI2RlZmluZSBDT01QQVJFXzRVQ0hBUlMoYWRk
cmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpIFxcCi0gICAgKChyZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQ2NF90Kj4oYWRkcmVzcykpWzBdID09IFVDSEFSUVVBRF9UT1VJTlQ2NChj
aGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkpCi0KLSNlbHNlIC8vIENQVShYODZfNjQpCi0KLSNk
ZWZpbmUgQ09NUEFSRV80Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQp
IFxcCi0gICAgKENPTVBBUkVfMkNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMikgJiYgQ09NUEFS
RV8yQ0hBUlMoKGFkZHJlc3MpICsgMiwgY2hhcjMsIGNoYXI0KSkKLSNkZWZpbmUgQ09NUEFSRV80
VUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0KSBcXAotICAgIChDT01Q
QVJFXzJVQ0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyKSAmJiBDT01QQVJFXzJVQ0hBUlMoKGFk
ZHJlc3MpICsgMiwgY2hhcjMsIGNoYXI0KSkKLQotI2VuZGlmIC8vIENQVShYODZfNjQpCi0KLSNl
bmRpZiAvLyBDUFUoTkVFRFNfQUxJR05FRF9BQ0NFU1MpCi0KLSNkZWZpbmUgQ09NUEFSRV8zQ0hB
UlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMykgXFwKLSAgICAoQ09NUEFSRV8yQ0hBUlMo
YWRkcmVzcywgY2hhcjEsIGNoYXIyKSAmJiAoKGFkZHJlc3MpWzJdID09IChjaGFyMykpKQotI2Rl
ZmluZSBDT01QQVJFXzNVQ0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMykgXFwKLSAg
ICAoQ09NUEFSRV8yVUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMikgJiYgKChhZGRyZXNzKVsy
XSA9PSAoY2hhcjMpKSkKLSNkZWZpbmUgQ09NUEFSRV81Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNo
YXIyLCBjaGFyMywgY2hhcjQsIGNoYXI1KSBcXAotICAgIChDT01QQVJFXzRDSEFSUyhhZGRyZXNz
LCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgJiYgKChhZGRyZXNzKVs0XSA9PSAoY2hhcjUp
KSkKLSNkZWZpbmUgQ09NUEFSRV81VUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMs
IGNoYXI0LCBjaGFyNSkgXFwKLSAgICAoQ09NUEFSRV80VUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBj
aGFyMiwgY2hhcjMsIGNoYXI0KSAmJiAoKGFkZHJlc3MpWzRdID09IChjaGFyNSkpKQotI2RlZmlu
ZSBDT01QQVJFXzZDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCwgY2hh
cjUsIGNoYXI2KSBcXAotICAgIChDT01QQVJFXzRDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIs
IGNoYXIzLCBjaGFyNCkgJiYgQ09NUEFSRV8yQ0hBUlMoYWRkcmVzcyArIDQsIGNoYXI1LCBjaGFy
NikpCi0jZGVmaW5lIENPTVBBUkVfNlVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIz
LCBjaGFyNCwgY2hhcjUsIGNoYXI2KSBcXAotICAgIChDT01QQVJFXzRVQ0hBUlMoYWRkcmVzcywg
Y2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpICYmIENPTVBBUkVfMlVDSEFSUyhhZGRyZXNzICsg
NCwgY2hhcjUsIGNoYXI2KSkKLSNkZWZpbmUgQ09NUEFSRV83Q0hBUlMoYWRkcmVzcywgY2hhcjEs
IGNoYXIyLCBjaGFyMywgY2hhcjQsIGNoYXI1LCBjaGFyNiwgY2hhcjcpIFxcCi0gICAgKENPTVBB
UkVfNENIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0KSAmJiBDT01QQVJF
XzRDSEFSUyhhZGRyZXNzICsgMywgY2hhcjQsIGNoYXI1LCBjaGFyNiwgY2hhcjcpKQotI2RlZmlu
ZSBDT01QQVJFXzdVQ0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQsIGNo
YXI1LCBjaGFyNiwgY2hhcjcpIFxcCi0gICAgKENPTVBBUkVfNFVDSEFSUyhhZGRyZXNzLCBjaGFy
MSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgJiYgQ09NUEFSRV80VUNIQVJTKGFkZHJlc3MgKyAzLCBj
aGFyNCwgY2hhcjUsIGNoYXI2LCBjaGFyNykpCi0jZGVmaW5lIENPTVBBUkVfOENIQVJTKGFkZHJl
c3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0LCBjaGFyNSwgY2hhcjYsIGNoYXI3LCBjaGFy
OCkgXFwKLSAgICAoQ09NUEFSRV80Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywg
Y2hhcjQpICYmIENPTVBBUkVfNENIQVJTKGFkZHJlc3MgKyA0LCBjaGFyNSwgY2hhcjYsIGNoYXI3
LCBjaGFyOCkpCi0jZGVmaW5lIENPTVBBUkVfOFVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIs
IGNoYXIzLCBjaGFyNCwgY2hhcjUsIGNoYXI2LCBjaGFyNywgY2hhcjgpIFxcCi0gICAgKENPTVBB
UkVfNFVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgJiYgQ09NUEFS
RV80VUNIQVJTKGFkZHJlc3MgKyA0LCBjaGFyNSwgY2hhcjYsIGNoYXI3LCBjaGFyOCkpCi0iIiIp
CiAKIHRyaWUucHJpbnRBc0MoKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374157</attachid>
            <date>2019-07-15 15:38:08 -0700</date>
            <delta_ts>2019-07-15 17:42:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199650-20190715153807.patch</filename>
            <type>text/plain</type>
            <size>9310</size>
            <attacher name="Saagar Jha">saagarjha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
M2QwMTIyZGYyYTkwYzZkMDdjNjYzYzM1Yzg5ODZjNzBmMDAzMDlkLi43NDc1NTc1Mjg5NGZhOWFj
ZDI0MmI4YWNiODcwMjNhZmUxMGZjNGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxOS0wNy0xNSAgU2FhZ2FyIEpoYSAgPHNhYWdhcmpoYUBhcHBsZS5jb20+
CisKKyAgICAgICAgS2V5d29yZCBsb29rdXAgY2FuIHVzZSBtZW1jbXAgdG8gZ2V0IGFyb3VuZCB1
bmFsaWduZWQgbG9hZCB1bmRlZmluZWQgYmVoYXZpb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgS2V5d29yZExvb2t1cCdzIGhhbmQtcm9s
bGVkICJtZW1jbXAiIHdpdGggdGhlIHN0YW5kYXJkIHZlcnNpb24sIHdoaWNoIHJlZHVjZXMgdGhl
IG5lZWQgdG8gZGVhbCB3aXRoCisgICAgICAgIGVuZGlhbm5lc3MgYW5kIHVuYWxpZ25lZCBsb2Fk
cy4KKworICAgICAgICAqIEtleXdvcmRMb29rdXBHZW5lcmF0b3IucHk6CisgICAgICAgIChUcmll
LnByaW50U3ViVHJlZUFzQyk6IFVzZSBtZW1jbXAgaW5zdGVhZCBvZiBtYWNyb3MgdG8gdGVzdCBm
b3IgbWF0Y2hlcy4KKyAgICAgICAgKFRyaWUucHJpbnRBc0MpOiBVbnNwZWNpYWxpemUgTGV4ZXI6
OnBhcnNlS2V5d29yZCBhcyB0ZW1wbGF0aW5nIG92ZXIgdGhlIGNoYXJhY3RlciB0eXBlIHJlZHVj
ZXMgdGhlIGFtb3VudCBvZgorICAgICAgICBjb2RlIHdlIG5lZWQgdG8gZ2VuZXJhdGUgYW5kIG1v
dmVzIHRoaXMgdGFzayBvdXQgb2YgdGhlIFB5dGhvbiBzY3JpcHQgYW5kIGludG8gdGhlIEMrKyBj
b21waWxlci4KKwogMjAxOS0wNy0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgRW5hYmxlIGEgZGVidWcgV2ViUlRDIG1vZGUgd2l0aG91dCBhbnkgZW5jcnlw
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0tleXdvcmRMb29rdXBHZW5l
cmF0b3IucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvS2V5d29yZExvb2t1cEdlbmVyYXRvci5w
eQppbmRleCBkMTNkYWJhNjFkMjQ3NThiMGEwNjJhOTY5NWExZTE4MjUwOTRjNDZlLi5mNjQwZDVh
ZjZiMDZkNWZkZWE5NzBkNGQzNzE1YTE0YmQwN2EwNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvS2V5d29yZExvb2t1cEdlbmVyYXRvci5weQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvS2V5d29yZExvb2t1cEdlbmVyYXRvci5weQpAQCAtMTM3LDExICsxMzcsMTEgQEAg
Y2xhc3MgVHJpZToKICAgICAgICAgc2VsZi5rZXlzID0gWyh0cmllLnByZWZpeCwgdHJpZSkgZm9y
IHRyaWUgaW4gc29ydGVkKHNlbGYua2V5cy52YWx1ZXMoKSwga2V5PW9wZXJhdG9yLmF0dHJnZXR0
ZXIoJ3dlaWdodCcpLCByZXZlcnNlPVRydWUpXQogICAgICAgICBzZWxmLndlaWdodCA9IHdlaWdo
dAogCi0gICAgZGVmIHByaW50U3ViVHJlZUFzQyhzZWxmLCB0eXBlTmFtZSwgaW5kZW50KToKKyAg
ICBkZWYgcHJpbnRTdWJUcmVlQXNDKHNlbGYsIGluZGVudCk6CiAgICAgICAgIHN0ciA9IG1ha2VQ
YWRkaW5nKGluZGVudCkKIAogICAgICAgICBpZiBzZWxmLnZhbHVlICE9IE5vbmU6Ci0gICAgICAg
ICAgICBwcmludChzdHIgKyAiaWYgKCFpc0lkZW50UGFydEluY2x1ZGluZ0VzY2FwZShjb2RlKyVk
LCBtX2NvZGVFbmQpKSB7IiAlIChsZW4oc2VsZi5mdWxsUHJlZml4KSkpCisgICAgICAgICAgICBw
cmludChzdHIgKyAiaWYgKCFpc0lkZW50UGFydEluY2x1ZGluZ0VzY2FwZShjb2RlICsgJWQsIG1f
Y29kZUVuZCkpIHsiICUgKGxlbihzZWxmLmZ1bGxQcmVmaXgpKSkKICAgICAgICAgICAgIHByaW50
KHN0ciArICIgICAgaW50ZXJuYWxTaGlmdDwlZD4oKTsiICUgbGVuKHNlbGYuZnVsbFByZWZpeCkp
CiAgICAgICAgICAgICBwcmludChzdHIgKyAiICAgIGlmIChzaG91bGRDcmVhdGVJZGVudGlmaWVy
KSIpCiAgICAgICAgICAgICBwcmludChzdHIgKyAoIiAgICAgICAgZGF0YS0+aWRlbnQgPSAmbV92
bS0+cHJvcGVydHlOYW1lcy0+JXNLZXl3b3JkOyIgJSBzZWxmLmZ1bGxQcmVmaXgpKQpAQCAtMTU1
LDE5ICsxNTUsMTYgQEAgY2xhc3MgVHJpZToKICAgICAgICAgICAgICAgICBiYXNlSW5kZXggPSBi
YXNlSW5kZXggLSAxCiAgICAgICAgICAgICAgICAgayA9IHRyaWUuZnVsbFByZWZpeFtiYXNlSW5k
ZXhdICsgawogICAgICAgICAgICAgdGVzdCA9IFsoIiclcyciICUgYykgZm9yIGMgaW4ga10KLSAg
ICAgICAgICAgIGlmIGxlbih0ZXN0KSA9PSAxOgotICAgICAgICAgICAgICAgIGNvbXBhcmlzb24g
PSAiY29kZVslZF0gPT0gJXMiICUgKGJhc2VJbmRleCwgdGVzdFswXSkKLSAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgYmFzZSA9ICJjb2RlIgotICAgICAgICAgICAgICAgIGlmIGJh
c2VJbmRleCA+IDA6Ci0gICAgICAgICAgICAgICAgICAgIGJhc2UgPSAiY29kZSArICVkIiAlIGJh
c2VJbmRleAotICAgICAgICAgICAgICAgIGNvbXBhcmlzb24gPSAoIkNPTVBBUkVfJWQlc1MoJXMs
ICIgJSAobGVuKHRlc3QpLCB0eXBlTmFtZSwgYmFzZSkpICsgIiwgIi5qb2luKHRlc3QpICsgIiki
CisgICAgICAgICAgICBiYXNlID0gImNvZGUgKyAlZCIgJSBiYXNlSW5kZXgKKyAgICAgICAgICAg
IGxlbmd0aCA9IF9fYnVpbHRpbnNfXy5zdHIobGVuKHRlc3QpKQorICAgICAgICAgICAgbmVlZGxl
ID0gIihzdGQ6OmFycmF5PENoYXIsICIgKyBsZW5ndGggKyAiPnt7IiArICIsICIuam9pbih0ZXN0
KSArICJ9fSkuZGF0YSgpIgorICAgICAgICAgICAgY29tcGFyaXNvbiA9ICgiIW1lbWNtcCglcywg
IiAlIChiYXNlKSkgKyBuZWVkbGUgKyAiLCAiICsgbGVuZ3RoICsgIiAqIHNpemVvZihDaGFyKSki
CiAgICAgICAgICAgICBpZiBpdGVtQ291bnQgPT0gMDoKICAgICAgICAgICAgICAgICBwcmludChz
dHIgKyAiaWYgKCIgKyBjb21wYXJpc29uICsgIikgeyIpCiAgICAgICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgICAgIHByaW50KHN0ciArICJ9IGVsc2UgaWYgKCIgKyBjb21wYXJpc29uICsgIikg
eyIpCiAKLSAgICAgICAgICAgIHRyaWUucHJpbnRTdWJUcmVlQXNDKHR5cGVOYW1lLCBpbmRlbnQg
KyA0KQorICAgICAgICAgICAgdHJpZS5wcmludFN1YlRyZWVBc0MoaW5kZW50ICsgNCkKICAgICAg
ICAgICAgIGl0ZW1Db3VudCA9IGl0ZW1Db3VudCArIDEKIAogICAgICAgICAgICAgaWYgaXRlbUNv
dW50ID09IGxlbihzZWxmLmtleXMpOgpAQCAtMTg5LDIzICsxODYsMTMgQEAgY2xhc3MgVHJpZToK
ICAgICAgICAgIyBtYXggbGVuZ3RoICsgMSBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueSBib3Vu
ZHMgY2hlY2tpbmcgYXQgYWxsCiAgICAgICAgIHByaW50KCJzdGF0aWMgY29uc3QgaW50IG1heFRv
a2VuTGVuZ3RoID0gJWQ7IiAlIChzZWxmLm1heExlbmd0aCgpICsgMSkpCiAgICAgICAgIHByaW50
KCIiKQotICAgICAgICBwcmludCgidGVtcGxhdGUgPD4iKQotICAgICAgICBwcmludCgidGVtcGxh
dGUgPGJvb2wgc2hvdWxkQ3JlYXRlSWRlbnRpZmllcj4gQUxXQVlTX0lOTElORSBKU1Rva2VuVHlw
ZSBMZXhlcjxVQ2hhcj46OnBhcnNlS2V5d29yZChKU1Rva2VuRGF0YSogZGF0YSkiKQotICAgICAg
ICBwcmludCgieyIpCi0gICAgICAgIHByaW50KCIgICAgQVNTRVJUKG1fY29kZUVuZCAtIG1fY29k
ZSA+PSBtYXhUb2tlbkxlbmd0aCk7IikKLSAgICAgICAgcHJpbnQoIiIpCi0gICAgICAgIHByaW50
KCIgICAgY29uc3QgVUNoYXIqIGNvZGUgPSBtX2NvZGU7IikKLSAgICAgICAgc2VsZi5wcmludFN1
YlRyZWVBc0MoIlVDSEFSIiwgNCkKLSAgICAgICAgcHJpbnQoIiAgICByZXR1cm4gSURFTlQ7IikK
LSAgICAgICAgcHJpbnQoIn0iKQotICAgICAgICBwcmludCgiIikKLSAgICAgICAgcHJpbnQoInRl
bXBsYXRlIDw+IikKLSAgICAgICAgcHJpbnQoInRlbXBsYXRlIDxib29sIHNob3VsZENyZWF0ZUlk
ZW50aWZpZXI+IEFMV0FZU19JTkxJTkUgSlNUb2tlblR5cGUgTGV4ZXI8TENoYXI+OjpwYXJzZUtl
eXdvcmQoSlNUb2tlbkRhdGEqIGRhdGEpIikKKyAgICAgICAgcHJpbnQoInRlbXBsYXRlIDx0eXBl
bmFtZSBDaGFyPiIpCisgICAgICAgIHByaW50KCJ0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRDcmVhdGVJ
ZGVudGlmaWVyPiBBTFdBWVNfSU5MSU5FIEpTVG9rZW5UeXBlIExleGVyPENoYXI+OjpwYXJzZUtl
eXdvcmQoSlNUb2tlbkRhdGEqIGRhdGEpIikKICAgICAgICAgcHJpbnQoInsiKQogICAgICAgICBw
cmludCgiICAgIEFTU0VSVChtX2NvZGVFbmQgLSBtX2NvZGUgPj0gbWF4VG9rZW5MZW5ndGgpOyIp
CiAgICAgICAgIHByaW50KCIiKQotICAgICAgICBwcmludCgiICAgIGNvbnN0IExDaGFyKiBjb2Rl
ID0gbV9jb2RlOyIpCi0gICAgICAgIHNlbGYucHJpbnRTdWJUcmVlQXNDKCJDSEFSIiwgNCkKKyAg
ICAgICAgcHJpbnQoIiAgICBjb25zdCBDaGFyKiBjb2RlID0gbV9jb2RlOyIpCisgICAgICAgIHNl
bGYucHJpbnRTdWJUcmVlQXNDKDQpCiAgICAgICAgIHByaW50KCIgICAgcmV0dXJuIElERU5UOyIp
CiAgICAgICAgIHByaW50KCJ9IikKICAgICAgICAgcHJpbnQoIiIpCkBAIC0yMTgsODkgKzIwNSw2
IEBAIGZvciBrLCB2IGluIGtleXdvcmRzOgogdHJpZS5jb2FsZXNjZSgpCiB0cmllLmZpbGxPdXQo
KQogcHJpbnQoIi8vIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IEtleXdvcmRMb29rdXBHZW5l
cmF0b3IucHkuICBEbyBub3QgZWRpdC4iKQotcHJpbnQoIiIiCi0jaWYgQ1BVKE5FRURTX0FMSUdO
RURfQUNDRVNTKQotCi0jZGVmaW5lIENPTVBBUkVfMkNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFy
MikgXFwKLSAgICAoKChhZGRyZXNzKVswXSA9PSBjaGFyMSkgJiYgKChhZGRyZXNzKVsxXSA9PSBj
aGFyMikpCi0jZGVmaW5lIENPTVBBUkVfNENIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hh
cjMsIGNoYXI0KSBcXAotICAgIChDT01QQVJFXzJDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIp
ICYmIENPTVBBUkVfMkNIQVJTKChhZGRyZXNzKSArIDIsIGNoYXIzLCBjaGFyNCkpCi0jZGVmaW5l
IENPTVBBUkVfMlVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIpIFxcCi0gICAgKCgoYWRkcmVz
cylbMF0gPT0gY2hhcjEpICYmICgoYWRkcmVzcylbMV0gPT0gY2hhcjIpKQotI2RlZmluZSBDT01Q
QVJFXzRVQ0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpIFxcCi0gICAg
KENPTVBBUkVfMlVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIpICYmIENPTVBBUkVfMlVDSEFS
UygoYWRkcmVzcykgKyAyLCBjaGFyMywgY2hhcjQpKQotCi0jZWxzZSAvLyBDUFUoTkVFRFNfQUxJ
R05FRF9BQ0NFU1MpCi0KLSNpZiBDUFUoQklHX0VORElBTikKLQotI2RlZmluZSBDSEFSUEFJUl9U
T1VJTlQxNihhLCBiKSBcXAotICAgICgoKCh1aW50MTZfdCkoYSkpIDw8IDgpICsgKHVpbnQxNl90
KShiKSkKLSNkZWZpbmUgQ0hBUlFVQURfVE9VSU5UMzIoYSwgYiwgYywgZCkgXFwKLSAgICAoKCgo
dWludDMyX3QpKENIQVJQQUlSX1RPVUlOVDE2KGEsIGIpKSkgPDwgMTYpICsgQ0hBUlBBSVJfVE9V
SU5UMTYoYywgZCkpCi0jZGVmaW5lIFVDSEFSUEFJUl9UT1VJTlQzMihhLCBiKSBcXAotICAgICgo
KCh1aW50MzJfdCkoYSkpIDw8IDE2KSArICh1aW50MzJfdCkoYikpCi0jZGVmaW5lIFVDSEFSUVVB
RF9UT1VJTlQ2NChhLCBiLCBjLCBkKSBcXAotICAgICgoKCh1aW50NjRfdCkoVUNIQVJRVUFEX1RP
VUlOVDY0KGEsIGIpKSkgPDwgMzIpICsgVUNIQVJQQUlSX1RPVUlOVDMyKGMsIGQpKQotCi0jZWxz
ZSAvLyBDUFUoQklHX0VORElBTikKLQotI2RlZmluZSBDSEFSUEFJUl9UT1VJTlQxNihhLCBiKSBc
XAotICAgICgoKCh1aW50MTZfdCkoYikpIDw8IDgpICsgKHVpbnQxNl90KShhKSkKLSNkZWZpbmUg
Q0hBUlFVQURfVE9VSU5UMzIoYSwgYiwgYywgZCkgXFwKLSAgICAoKCgodWludDMyX3QpKENIQVJQ
QUlSX1RPVUlOVDE2KGMsIGQpKSkgPDwgMTYpICsgQ0hBUlBBSVJfVE9VSU5UMTYoYSwgYikpCi0j
ZGVmaW5lIFVDSEFSUEFJUl9UT1VJTlQzMihhLCBiKSBcXAotICAgICgoKCh1aW50MzJfdCkoYikp
IDw8IDE2KSArICh1aW50MzJfdCkoYSkpCi0jZGVmaW5lIFVDSEFSUVVBRF9UT1VJTlQ2NChhLCBi
LCBjLCBkKSBcXAotICAgICgoKCh1aW50NjRfdCkoVUNIQVJQQUlSX1RPVUlOVDMyKGMsIGQpKSkg
PDwgMzIpICsgVUNIQVJQQUlSX1RPVUlOVDMyKGEsIGIpKQotCi0jZW5kaWYgLy8gQ1BVKEJJR19F
TkRJQU4pCi0KLQotI2RlZmluZSBDT01QQVJFXzJDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIp
IFxcCi0gICAgKChyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQxNl90Kj4oYWRkcmVzcykpWzBd
ID09IENIQVJQQUlSX1RPVUlOVDE2KGNoYXIxLCBjaGFyMikpCi0jZGVmaW5lIENPTVBBUkVfMlVD
SEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIpIFxcCi0gICAgKChyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQzMl90Kj4oYWRkcmVzcykpWzBdID09IFVDSEFSUEFJUl9UT1VJTlQzMihjaGFyMSwg
Y2hhcjIpKQotCi0jaWYgQ1BVKFg4Nl82NCkKLQotI2RlZmluZSBDT01QQVJFXzRDSEFSUyhhZGRy
ZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgXFwKLSAgICAoKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDMyX3QqPihhZGRyZXNzKSlbMF0gPT0gQ0hBUlFVQURfVE9VSU5UMzIoY2hh
cjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpKQotI2RlZmluZSBDT01QQVJFXzRVQ0hBUlMoYWRkcmVz
cywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpIFxcCi0gICAgKChyZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQ2NF90Kj4oYWRkcmVzcykpWzBdID09IFVDSEFSUVVBRF9UT1VJTlQ2NChjaGFy
MSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkpCi0KLSNlbHNlIC8vIENQVShYODZfNjQpCi0KLSNkZWZp
bmUgQ09NUEFSRV80Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpIFxc
Ci0gICAgKENPTVBBUkVfMkNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMikgJiYgQ09NUEFSRV8y
Q0hBUlMoKGFkZHJlc3MpICsgMiwgY2hhcjMsIGNoYXI0KSkKLSNkZWZpbmUgQ09NUEFSRV80VUNI
QVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0KSBcXAotICAgIChDT01QQVJF
XzJVQ0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyKSAmJiBDT01QQVJFXzJVQ0hBUlMoKGFkZHJl
c3MpICsgMiwgY2hhcjMsIGNoYXI0KSkKLQotI2VuZGlmIC8vIENQVShYODZfNjQpCi0KLSNlbmRp
ZiAvLyBDUFUoTkVFRFNfQUxJR05FRF9BQ0NFU1MpCi0KLSNkZWZpbmUgQ09NUEFSRV8zQ0hBUlMo
YWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMykgXFwKLSAgICAoQ09NUEFSRV8yQ0hBUlMoYWRk
cmVzcywgY2hhcjEsIGNoYXIyKSAmJiAoKGFkZHJlc3MpWzJdID09IChjaGFyMykpKQotI2RlZmlu
ZSBDT01QQVJFXzNVQ0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMykgXFwKLSAgICAo
Q09NUEFSRV8yVUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMikgJiYgKChhZGRyZXNzKVsyXSA9
PSAoY2hhcjMpKSkKLSNkZWZpbmUgQ09NUEFSRV81Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIy
LCBjaGFyMywgY2hhcjQsIGNoYXI1KSBcXAotICAgIChDT01QQVJFXzRDSEFSUyhhZGRyZXNzLCBj
aGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgJiYgKChhZGRyZXNzKVs0XSA9PSAoY2hhcjUpKSkK
LSNkZWZpbmUgQ09NUEFSRV81VUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNo
YXI0LCBjaGFyNSkgXFwKLSAgICAoQ09NUEFSRV80VUNIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFy
MiwgY2hhcjMsIGNoYXI0KSAmJiAoKGFkZHJlc3MpWzRdID09IChjaGFyNSkpKQotI2RlZmluZSBD
T01QQVJFXzZDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCwgY2hhcjUs
IGNoYXI2KSBcXAotICAgIChDT01QQVJFXzRDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNo
YXIzLCBjaGFyNCkgJiYgQ09NUEFSRV8yQ0hBUlMoYWRkcmVzcyArIDQsIGNoYXI1LCBjaGFyNikp
Ci0jZGVmaW5lIENPTVBBUkVfNlVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBj
aGFyNCwgY2hhcjUsIGNoYXI2KSBcXAotICAgIChDT01QQVJFXzRVQ0hBUlMoYWRkcmVzcywgY2hh
cjEsIGNoYXIyLCBjaGFyMywgY2hhcjQpICYmIENPTVBBUkVfMlVDSEFSUyhhZGRyZXNzICsgNCwg
Y2hhcjUsIGNoYXI2KSkKLSNkZWZpbmUgQ09NUEFSRV83Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNo
YXIyLCBjaGFyMywgY2hhcjQsIGNoYXI1LCBjaGFyNiwgY2hhcjcpIFxcCi0gICAgKENPTVBBUkVf
NENIQVJTKGFkZHJlc3MsIGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0KSAmJiBDT01QQVJFXzRD
SEFSUyhhZGRyZXNzICsgMywgY2hhcjQsIGNoYXI1LCBjaGFyNiwgY2hhcjcpKQotI2RlZmluZSBD
T01QQVJFXzdVQ0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hhcjQsIGNoYXI1
LCBjaGFyNiwgY2hhcjcpIFxcCi0gICAgKENPTVBBUkVfNFVDSEFSUyhhZGRyZXNzLCBjaGFyMSwg
Y2hhcjIsIGNoYXIzLCBjaGFyNCkgJiYgQ09NUEFSRV80VUNIQVJTKGFkZHJlc3MgKyAzLCBjaGFy
NCwgY2hhcjUsIGNoYXI2LCBjaGFyNykpCi0jZGVmaW5lIENPTVBBUkVfOENIQVJTKGFkZHJlc3Ms
IGNoYXIxLCBjaGFyMiwgY2hhcjMsIGNoYXI0LCBjaGFyNSwgY2hhcjYsIGNoYXI3LCBjaGFyOCkg
XFwKLSAgICAoQ09NUEFSRV80Q0hBUlMoYWRkcmVzcywgY2hhcjEsIGNoYXIyLCBjaGFyMywgY2hh
cjQpICYmIENPTVBBUkVfNENIQVJTKGFkZHJlc3MgKyA0LCBjaGFyNSwgY2hhcjYsIGNoYXI3LCBj
aGFyOCkpCi0jZGVmaW5lIENPTVBBUkVfOFVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNo
YXIzLCBjaGFyNCwgY2hhcjUsIGNoYXI2LCBjaGFyNywgY2hhcjgpIFxcCi0gICAgKENPTVBBUkVf
NFVDSEFSUyhhZGRyZXNzLCBjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNCkgJiYgQ09NUEFSRV80
VUNIQVJTKGFkZHJlc3MgKyA0LCBjaGFyNSwgY2hhcjYsIGNoYXI3LCBjaGFyOCkpCi0iIiIpCiAK
IHRyaWUucHJpbnRBc0MoKQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>