diff options
author | Takuya Noguchi <takninnovationresearch@gmail.com> | 2021-05-12 18:43:34 +0300 |
---|---|---|
committer | Takuya Noguchi <takninnovationresearch@gmail.com> | 2021-05-12 18:43:34 +0300 |
commit | 3e52bc4d02b9fc258b6b6d4a38f7493ea3deaf77 (patch) | |
tree | 19fe623beb76625dca73cd2f8bcb022a07d73953 | |
parent | 3129b16930c1a0b1afe19b05a31c3195073de12b (diff) |
Use text/template to generate NOTICE
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
-rw-r--r-- | NOTICE | 3052 | ||||
-rw-r--r-- | _support/noticegen/noticegen.go | 2 |
2 files changed, 1527 insertions, 1527 deletions
@@ -65,38 +65,38 @@ LICENSE - cloud.google.com/go 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -104,21 +104,21 @@ LICENSE - cloud.google.com/go separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -162,7 +162,7 @@ LICENSE - cloud.google.com/go excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -201,7 +201,7 @@ LICENSE - cloud.google.com/go 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -237,24 +237,24 @@ LICENSE - cloud.google.com/go APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -265,7 +265,7 @@ Copyright (C) 2013 Blake Mizerany Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including +"Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to @@ -274,7 +274,7 @@ the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE @@ -289,7 +289,7 @@ The MIT License (MIT) Copyright (c) 2015 Nick Galbreath Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -298,7 +298,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -319,7 +319,7 @@ Redistribution and use in source and binary forms, with or without modification, 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE - github.com/codahale/hdrhistogram @@ -328,7 +328,7 @@ The MIT License (MIT) Copyright (c) 2014 Coda Hale Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -337,7 +337,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -355,38 +355,38 @@ LICENSE - github.com/containerd/cgroups 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -394,21 +394,21 @@ LICENSE - github.com/containerd/cgroups separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -452,7 +452,7 @@ LICENSE - github.com/containerd/cgroups excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -491,7 +491,7 @@ LICENSE - github.com/containerd/cgroups 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -527,24 +527,24 @@ LICENSE - github.com/containerd/cgroups APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -559,55 +559,55 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. -"License" shall mean the terms and conditions for use, reproduction, and +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. -"Licensor" shall mean the copyright owner or entity authorized by the copyright +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. -"Legal Entity" shall mean the union of the acting entity and all other entities +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. -For the purposes of this definition, "control" means (i) the power, direct or +For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. -"You" (or "Your") shall mean an individual or Legal Entity exercising +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. -"Source" form shall mean the preferred form for making modifications, including +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. -"Object" form shall mean any form resulting from mechanical transformation or +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. -"Work" shall mean the work of authorship, whether in Source or Object form, made +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). -"Derivative Works" shall mean any work, whether in Source or Object form, that +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. -"Contribution" shall mean any work of authorship, including the original version +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, -"submitted" means any form of electronic, verbal, or written communication sent +"submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright -owner as "Not a Contribution." +owner as "Not a Contribution." -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -648,7 +648,7 @@ You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the @@ -686,7 +686,7 @@ reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the -Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are @@ -722,23 +722,23 @@ END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work To apply the Apache License to your work, attach the following boilerplate -notice, with the fields enclosed by brackets "[]" replaced with your own -identifying information. (Don't include the brackets!) The text should be +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on -the same "printed page" as the copyright notice for easier identification within +the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -755,13 +755,13 @@ This product includes software developed at CoreOS, Inc. LICENSE - github.com/davecgh/go-spew/spew ISC License -Copyright (c) 2012-2016 Dave Collins <dave@davec.name> +Copyright (c) 2012-2016 Dave Collins <dave@davec.name> Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES @@ -780,38 +780,38 @@ LICENSE - github.com/docker/go-units 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -819,21 +819,21 @@ LICENSE - github.com/docker/go-units separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -877,7 +877,7 @@ LICENSE - github.com/docker/go-units excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -916,7 +916,7 @@ LICENSE - github.com/docker/go-units 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -951,14 +951,14 @@ LICENSE - github.com/docker/go-units Copyright 2015 Docker, Inc. - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -970,7 +970,7 @@ MIT License Copyright (c) 2018 Daniel Potapov Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -979,7 +979,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -996,7 +996,7 @@ Redistribution and use in source and binary forms, with or without modification, * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE.md - github.com/git-lfs/git-lfs @@ -1005,7 +1005,7 @@ MIT License Copyright (c) 2014-2020 GitHub, Inc. and Git LFS contributors Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -1014,7 +1014,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -1042,7 +1042,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -1063,7 +1063,7 @@ MIT License Copyright (c) 2017- GitHub, Inc. and Git LFS contributors Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -1072,7 +1072,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -1082,11 +1082,11 @@ SOFTWARE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE - github.com/git-lfs/go-netrc/netrc -Original version Copyright © 2010 Fazlul Shahriar <fshahriar@gmail.com>. Newer -portions Copyright © 2014 Blake Gentry <blakesgentry@gmail.com>. +Original version Copyright © 2010 Fazlul Shahriar <fshahriar@gmail.com>. Newer +portions Copyright © 2014 Blake Gentry <blakesgentry@gmail.com>. Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -1095,7 +1095,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -1110,7 +1110,7 @@ MIT License Copyright (c) 2018- GitHub, Inc. and Git LFS contributors Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -1119,7 +1119,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -1129,7 +1129,7 @@ SOFTWARE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE - github.com/godbus/dbus/v5 -Copyright (c) 2013, Georg Reinke (<guelfey at gmail dot com>), Google +Copyright (c) 2013, Georg Reinke (<guelfey at gmail dot com>), Google All rights reserved. Redistribution and use in source and binary forms, with or without @@ -1144,7 +1144,7 @@ notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -1161,7 +1161,7 @@ Copyright (c) 2013, The GoGo Authors. All rights reserved. Protocol Buffers for Go with Gadgets -Go support for Protocol Buffers - Google's data interchange format +Go support for Protocol Buffers - Google's data interchange format Copyright 2010 The Go Authors. All rights reserved. https://github.com/golang/protobuf @@ -1181,7 +1181,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -1203,55 +1203,55 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. -"License" shall mean the terms and conditions for use, reproduction, and +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. -"Licensor" shall mean the copyright owner or entity authorized by the copyright +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. -"Legal Entity" shall mean the union of the acting entity and all other entities +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. -For the purposes of this definition, "control" means (i) the power, direct or +For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. -"You" (or "Your") shall mean an individual or Legal Entity exercising +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. -"Source" form shall mean the preferred form for making modifications, including +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. -"Object" form shall mean any form resulting from mechanical transformation or +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. -"Work" shall mean the work of authorship, whether in Source or Object form, made +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). -"Derivative Works" shall mean any work, whether in Source or Object form, that +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. -"Contribution" shall mean any work of authorship, including the original version +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, -"submitted" means any form of electronic, verbal, or written communication sent +"submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright -owner as "Not a Contribution." +owner as "Not a Contribution." -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -1292,7 +1292,7 @@ You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the @@ -1330,7 +1330,7 @@ reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the -Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are @@ -1366,23 +1366,23 @@ END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work To apply the Apache License to your work, attach the following boilerplate -notice, with the fields enclosed by brackets "[]" replaced with your own -identifying information. (Don't include the brackets!) The text should be +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on -the same "printed page" as the copyright notice for easier identification within +the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -1406,7 +1406,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -1437,7 +1437,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -1459,38 +1459,38 @@ LICENSE - github.com/google/pprof/profile 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -1498,21 +1498,21 @@ LICENSE - github.com/google/pprof/profile separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -1556,7 +1556,7 @@ LICENSE - github.com/google/pprof/profile excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -1595,7 +1595,7 @@ LICENSE - github.com/google/pprof/profile 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -1631,24 +1631,24 @@ LICENSE - github.com/google/pprof/profile APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -1672,7 +1672,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -1702,7 +1702,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -1723,38 +1723,38 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-middleware 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -1762,21 +1762,21 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-middleware separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -1820,7 +1820,7 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-middleware excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -1859,7 +1859,7 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-middleware 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -1895,24 +1895,24 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-middleware APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -1926,38 +1926,38 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-prometheus 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -1965,21 +1965,21 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-prometheus separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -2023,7 +2023,7 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-prometheus excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -2062,7 +2062,7 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-prometheus 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -2098,24 +2098,24 @@ LICENSE - github.com/grpc-ecosystem/go-grpc-prometheus APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -2140,28 +2140,28 @@ Mozilla Public License, version 2.0 1. Definitions -1.1. "Contributor" +1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. -1.2. "Contributor Version" +1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a - Contributor and that particular Contributor's Contribution. + Contributor and that particular Contributor's Contribution. -1.3. "Contribution" +1.3. "Contribution" means Covered Software of a particular Contributor. -1.4. "Covered Software" +1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. -1.5. "Incompatible With Secondary Licenses" +1.5. "Incompatible With Secondary Licenses" means a. that the initial Contributor has attached the notice described in @@ -2171,26 +2171,26 @@ Mozilla Public License, version 2.0 version 1.1 or earlier of the License, but not also under the terms of a Secondary License. -1.6. "Executable Form" +1.6. "Executable Form" means any form of the work other than Source Code Form. -1.7. "Larger Work" +1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. -1.8. "License" +1.8. "License" means this document. -1.9. "Licensable" +1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. -1.10. "Modifications" +1.10. "Modifications" means any of the following: @@ -2199,7 +2199,7 @@ Mozilla Public License, version 2.0 b. any new file in Source Code Form that contains any Covered Software. -1.11. "Patent Claims" of a Contributor +1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such @@ -2207,22 +2207,22 @@ Mozilla Public License, version 2.0 by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. -1.12. "Secondary License" +1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. -1.13. "Source Code Form" +1.13. "Source Code Form" means the form of the work preferred for making modifications. -1.14. "You" (or "Your") +1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that controls, is + License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this - definition, "control" means (a) the power, direct or indirect, to cause + definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. @@ -2261,7 +2261,7 @@ Mozilla Public License, version 2.0 a. for any code that a Contributor has removed from Covered Software; or - b. for infringements caused by: (i) Your and any other third party's + b. for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or @@ -2307,7 +2307,7 @@ Mozilla Public License, version 2.0 the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not - attempt to alter or restrict the recipients' rights in the Source Code + attempt to alter or restrict the recipients' rights in the Source Code Form. 3.2. Distribution of Executable Form @@ -2323,7 +2323,7 @@ Mozilla Public License, version 2.0 b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the - recipients' rights in the Source Code Form under this License. + recipients' rights in the Source Code Form under this License. 3.3. Distribution of a Larger Work @@ -2401,7 +2401,7 @@ Mozilla Public License, version 2.0 6. Disclaimer of Warranty - Covered Software is provided under this License on an "as is" basis, + Covered Software is provided under this License on an "as is" basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. @@ -2423,7 +2423,7 @@ Mozilla Public License, version 2.0 other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from - such party's negligence to the extent applicable law prohibits such + such party's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. @@ -2434,7 +2434,7 @@ Mozilla Public License, version 2.0 of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing - in this Section shall prevent a party's ability to bring cross-claims or + in this Section shall prevent a party's ability to bring cross-claims or counter-claims. 9. Miscellaneous @@ -2493,10 +2493,10 @@ notice. You may add additional accurate notices of copyright ownership. -Exhibit B - "Incompatible With Secondary Licenses" Notice +Exhibit B - "Incompatible With Secondary Licenses" Notice - This Source Code Form is "Incompatible - With Secondary Licenses", as defined by + This Source Code Form is "Incompatible + With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. @@ -2520,10 +2520,10 @@ uuid.go - github.com/hashicorp/go-uuid package uuid import ( - "crypto/rand" - "encoding/hex" - "fmt" - "io" + "crypto/rand" + "encoding/hex" + "fmt" + "io" ) // GenerateRandomBytes is used to generate random bytes of given size. @@ -2534,11 +2534,11 @@ func GenerateRandomBytes(size int) ([]byte, error) { // GenerateRandomBytesWithReader is used to generate random bytes of given size read from a given reader. func GenerateRandomBytesWithReader(size int, reader io.Reader) ([]byte, error) { if reader == nil { - return nil, fmt.Errorf("provided reader is nil") + return nil, fmt.Errorf("provided reader is nil") } buf := make([]byte, size) if _, err := io.ReadFull(reader, buf); err != nil { - return nil, fmt.Errorf("failed to read random bytes: %v", err) + return nil, fmt.Errorf("failed to read random bytes: %v", err) } return buf, nil } @@ -2554,21 +2554,21 @@ func GenerateUUID() (string, error) { // GenerateUUIDWithReader is used to generate a random UUID with a given Reader func GenerateUUIDWithReader(reader io.Reader) (string, error) { if reader == nil { - return "", fmt.Errorf("provided reader is nil") + return "", fmt.Errorf("provided reader is nil") } buf, err := GenerateRandomBytesWithReader(uuidLen, reader) if err != nil { - return "", err + return "", err } return FormatUUID(buf) } func FormatUUID(buf []byte) (string, error) { if buflen := len(buf); buflen != uuidLen { - return "", fmt.Errorf("wrong length byte slice (%d)", buflen) + return "", fmt.Errorf("wrong length byte slice (%d)", buflen) } - return fmt.Sprintf("%x-%x-%x-%x-%x", + return fmt.Sprintf("%x-%x-%x-%x-%x", buf[0:4], buf[4:6], buf[6:8], @@ -2577,25 +2577,25 @@ func FormatUUID(buf []byte) (string, error) { } func ParseUUID(uuid string) ([]byte, error) { - if len(uuid) != 2 * uuidLen + 4 { - return nil, fmt.Errorf("uuid string is wrong length") + if len(uuid) != 2 * uuidLen + 4 { + return nil, fmt.Errorf("uuid string is wrong length") } - if uuid[8] != '-' || - uuid[13] != '-' || - uuid[18] != '-' || - uuid[23] != '-' { - return nil, fmt.Errorf("uuid is improperly formatted") + if uuid[8] != '-' || + uuid[13] != '-' || + uuid[18] != '-' || + uuid[23] != '-' { + return nil, fmt.Errorf("uuid is improperly formatted") } - hexStr := uuid[0:8] + uuid[9:13] + uuid[14:18] + uuid[19:23] + uuid[24:36] + hexStr := uuid[0:8] + uuid[9:13] + uuid[14:18] + uuid[19:23] + uuid[24:36] ret, err := hex.DecodeString(hexStr) if err != nil { return nil, err } if len(ret) != uuidLen { - return nil, fmt.Errorf("decoded hex is the wrong length") + return nil, fmt.Errorf("decoded hex is the wrong length") } return ret, nil @@ -2606,11 +2606,11 @@ uuid_test.go - github.com/hashicorp/go-uuid package uuid import ( - "crypto/rand" - "io" - "reflect" - "regexp" - "testing" + "crypto/rand" + "io" + "reflect" + "regexp" + "testing" ) func TestGenerateUUID(t *testing.T) { @@ -2618,19 +2618,19 @@ func TestGenerateUUID(t *testing.T) { if err != nil { t.Fatal(err) } - for i := 0; i < 100; i++ { + for i := 0; i < 100; i++ { id, err := GenerateUUID() if err != nil { t.Fatal(err) } if prev == id { - t.Fatalf("Should get a new ID!") + t.Fatalf("Should get a new ID!") } matched, err := regexp.MatchString( - "[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}", id) + "[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}", id) if !matched || err != nil { - t.Fatalf("expected match %s %v %s", id, matched, err) + t.Fatalf("expected match %s %v %s", id, matched, err) } } } @@ -2639,10 +2639,10 @@ func TestGenerateUUIDWithReader(t *testing.T) { var nilReader io.Reader str, err := GenerateUUIDWithReader(nilReader) if err == nil { - t.Fatalf("should get an error with a nilReader") + t.Fatalf("should get an error with a nilReader") } - if str != "" { - t.Fatalf("should get an empty string") + if str != "" { + t.Fatalf("should get an empty string") } prev, err := GenerateUUIDWithReader(rand.Reader) @@ -2655,20 +2655,20 @@ func TestGenerateUUIDWithReader(t *testing.T) { t.Fatal(err) } if prev == id { - t.Fatalf("Should get a new ID!") + t.Fatalf("Should get a new ID!") } matched, err := regexp.MatchString( - "[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}", id) + "[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}", id) if !matched || err != nil { - t.Fatalf("expected match %s %v %s", id, matched, err) + t.Fatalf("expected match %s %v %s", id, matched, err) } } func TestParseUUID(t *testing.T) { buf := make([]byte, 16) if _, err := rand.Read(buf); err != nil { - t.Fatalf("failed to read random bytes: %v", err) + t.Fatalf("failed to read random bytes: %v", err) } uuidStr, err := FormatUUID(buf) @@ -2682,18 +2682,18 @@ func TestParseUUID(t *testing.T) { } if !reflect.DeepEqual(parsedStr, buf) { - t.Fatalf("mismatched buffers") + t.Fatalf("mismatched buffers") } } func BenchmarkGenerateUUID(b *testing.B) { - for n := 0; n < b.N; n++ { + for n := 0; n < b.N; n++ { _, _ = GenerateUUID() } } func BenchmarkGenerateUUIDWithReader(b *testing.B) { - for n := 0; n < b.N; n++ { + for n := 0; n < b.N; n++ { _, _ = GenerateUUIDWithReader(rand.Reader) } } @@ -2729,10 +2729,10 @@ _testmain.go package lru import ( - "fmt" - "sync" + "fmt" + "sync" - "github.com/hashicorp/golang-lru/simplelru" + "github.com/hashicorp/golang-lru/simplelru" ) const ( @@ -2773,14 +2773,14 @@ func New2Q(size int) (*TwoQueueCache, error) { // New2QParams creates a new TwoQueueCache using the provided // parameter values. func New2QParams(size int, recentRatio float64, ghostRatio float64) (*TwoQueueCache, error) { - if size <= 0 { - return nil, fmt.Errorf("invalid size") + if size <= 0 { + return nil, fmt.Errorf("invalid size") } - if recentRatio < 0.0 || recentRatio > 1.0 { - return nil, fmt.Errorf("invalid recent ratio") + if recentRatio < 0.0 || recentRatio > 1.0 { + return nil, fmt.Errorf("invalid recent ratio") } - if ghostRatio < 0.0 || ghostRatio > 1.0 { - return nil, fmt.Errorf("invalid ghost ratio") + if ghostRatio < 0.0 || ghostRatio > 1.0 { + return nil, fmt.Errorf("invalid ghost ratio") } // Determine the sub-sizes @@ -2802,7 +2802,7 @@ func New2QParams(size int, recentRatio float64, ghostRatio float64) (*TwoQueueCa } // Initialize the cache - c := &TwoQueueCache{ + c := &TwoQueueCache{ size: size, recentSize: recentSize, recent: recent, @@ -2812,7 +2812,7 @@ func New2QParams(size int, recentRatio float64, ghostRatio float64) (*TwoQueueCa return c, nil } -// Get looks up a key's value from the cache. +// Get looks up a key's value from the cache. func (c *TwoQueueCache) Get(key interface{}) (value interface{}, ok bool) { c.lock.Lock() defer c.lock.Unlock() @@ -2874,13 +2874,13 @@ func (c *TwoQueueCache) ensureSpace(recentEvict bool) { // If we have space, nothing to do recentLen := c.recent.Len() freqLen := c.frequent.Len() - if recentLen+freqLen < c.size { + if recentLen+freqLen < c.size { return } // If the recent buffer is larger than // the target, evict from there - if recentLen > 0 && (recentLen > c.recentSize || (recentLen == c.recentSize && !recentEvict)) { + if recentLen > 0 && (recentLen > c.recentSize || (recentLen == c.recentSize && !recentEvict)) { k, _, _ := c.recent.RemoveOldest() c.recentEvict.Add(k, nil) return @@ -2894,7 +2894,7 @@ func (c *TwoQueueCache) ensureSpace(recentEvict bool) { func (c *TwoQueueCache) Len() int { c.lock.RLock() defer c.lock.RUnlock() - return c.recent.Len() + c.frequent.Len() + return c.recent.Len() + c.frequent.Len() } // Keys returns a slice of the keys in the cache. @@ -2955,47 +2955,47 @@ func (c *TwoQueueCache) Peek(key interface{}) (value interface{}, ok bool) { package lru import ( - "math/rand" - "testing" + "math/rand" + "testing" ) func Benchmark2Q_Rand(b *testing.B) { l, err := New2Q(8192) if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } trace := make([]int64, b.N*2) - for i := 0; i < b.N*2; i++ { + for i := 0; i < b.N*2; i++ { trace[i] = rand.Int63() % 32768 } b.ResetTimer() var hit, miss int - for i := 0; i < 2*b.N; i++ { + for i := 0; i < 2*b.N; i++ { if i%2 == 0 { l.Add(trace[i], trace[i]) } else { _, ok := l.Get(trace[i]) if ok { - hit++ + hit++ } else { - miss++ + miss++ } } } - b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) + b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) } func Benchmark2Q_Freq(b *testing.B) { l, err := New2Q(8192) if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } trace := make([]int64, b.N*2) - for i := 0; i < b.N*2; i++ { + for i := 0; i < b.N*2; i++ { if i%2 == 0 { trace[i] = rand.Int63() % 16384 } else { @@ -3005,30 +3005,30 @@ func Benchmark2Q_Freq(b *testing.B) { b.ResetTimer() - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { l.Add(trace[i], trace[i]) } var hit, miss int - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { _, ok := l.Get(trace[i]) if ok { - hit++ + hit++ } else { - miss++ + miss++ } } - b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) + b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) } func Test2Q_RandomOps(t *testing.T) { size := 128 l, err := New2Q(128) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } n := 200000 - for i := 0; i < n; i++ { + for i := 0; i < n; i++ { key := rand.Int63() % 512 r := rand.Int63() switch r % 3 { @@ -3040,8 +3040,8 @@ func Test2Q_RandomOps(t *testing.T) { l.Remove(key) } - if l.recent.Len()+l.frequent.Len() > size { - t.Fatalf("bad: recent: %d freq: %d", + if l.recent.Len()+l.frequent.Len() > size { + t.Fatalf("bad: recent: %d freq: %d", l.recent.Len(), l.frequent.Len()) } } @@ -3050,212 +3050,212 @@ func Test2Q_RandomOps(t *testing.T) { func Test2Q_Get_RecentToFrequent(t *testing.T) { l, err := New2Q(128) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } // Touch all the entries, should be in t1 - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { l.Add(i, i) } if n := l.recent.Len(); n != 128 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.frequent.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Get should upgrade to t2 - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { _, ok := l.Get(i) if !ok { - t.Fatalf("missing: %d", i) + t.Fatalf("missing: %d", i) } } if n := l.recent.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.frequent.Len(); n != 128 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Get be from t2 - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { _, ok := l.Get(i) if !ok { - t.Fatalf("missing: %d", i) + t.Fatalf("missing: %d", i) } } if n := l.recent.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.frequent.Len(); n != 128 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } } func Test2Q_Add_RecentToFrequent(t *testing.T) { l, err := New2Q(128) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } // Add initially to recent l.Add(1, 1) if n := l.recent.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.frequent.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Add should upgrade to frequent l.Add(1, 1) if n := l.recent.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.frequent.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Add should remain in frequent l.Add(1, 1) if n := l.recent.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.frequent.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } } func Test2Q_Add_RecentEvict(t *testing.T) { l, err := New2Q(4) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - // Add 1,2,3,4,5 -> Evict 1 + // Add 1,2,3,4,5 -> Evict 1 l.Add(1, 1) l.Add(2, 2) l.Add(3, 3) l.Add(4, 4) l.Add(5, 5) if n := l.recent.Len(); n != 4 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.recentEvict.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.frequent.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Pull in the recently evicted l.Add(1, 1) if n := l.recent.Len(); n != 3 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.recentEvict.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.frequent.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Add 6, should cause another recent evict l.Add(6, 6) if n := l.recent.Len(); n != 3 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.recentEvict.Len(); n != 2 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.frequent.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } } func Test2Q(t *testing.T) { l, err := New2Q(128) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - for i := 0; i < 256; i++ { + for i := 0; i < 256; i++ { l.Add(i, i) } if l.Len() != 128 { - t.Fatalf("bad len: %v", l.Len()) + t.Fatalf("bad len: %v", l.Len()) } for i, k := range l.Keys() { - if v, ok := l.Get(k); !ok || v != k || v != i+128 { - t.Fatalf("bad key: %v", k) + if v, ok := l.Get(k); !ok || v != k || v != i+128 { + t.Fatalf("bad key: %v", k) } } - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { _, ok := l.Get(i) if ok { - t.Fatalf("should be evicted") + t.Fatalf("should be evicted") } } - for i := 128; i < 256; i++ { + for i := 128; i < 256; i++ { _, ok := l.Get(i) if !ok { - t.Fatalf("should not be evicted") + t.Fatalf("should not be evicted") } } - for i := 128; i < 192; i++ { + for i := 128; i < 192; i++ { l.Remove(i) _, ok := l.Get(i) if ok { - t.Fatalf("should be deleted") + t.Fatalf("should be deleted") } } l.Purge() if l.Len() != 0 { - t.Fatalf("bad len: %v", l.Len()) + t.Fatalf("bad len: %v", l.Len()) } if _, ok := l.Get(200); ok { - t.Fatalf("should contain nothing") + t.Fatalf("should contain nothing") } } -// Test that Contains doesn't update recent-ness +// Test that Contains doesn't update recent-ness func Test2Q_Contains(t *testing.T) { l, err := New2Q(2) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) if !l.Contains(1) { - t.Errorf("1 should be contained") + t.Errorf("1 should be contained") } l.Add(3, 3) if l.Contains(1) { - t.Errorf("Contains should not have updated recent-ness of 1") + t.Errorf("Contains should not have updated recent-ness of 1") } } -// Test that Peek doesn't update recent-ness +// Test that Peek doesn't update recent-ness func Test2Q_Peek(t *testing.T) { l, err := New2Q(2) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) if v, ok := l.Peek(1); !ok || v != 1 { - t.Errorf("1 should be set to 1: %v, %v", v, ok) + t.Errorf("1 should be set to 1: %v, %v", v, ok) } l.Add(3, 3) if l.Contains(1) { - t.Errorf("should not have updated recent-ness of 1") + t.Errorf("should not have updated recent-ness of 1") } } @@ -3265,28 +3265,28 @@ Mozilla Public License, version 2.0 1. Definitions -1.1. "Contributor" +1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. -1.2. "Contributor Version" +1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a - Contributor and that particular Contributor's Contribution. + Contributor and that particular Contributor's Contribution. -1.3. "Contribution" +1.3. "Contribution" means Covered Software of a particular Contributor. -1.4. "Covered Software" +1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. -1.5. "Incompatible With Secondary Licenses" +1.5. "Incompatible With Secondary Licenses" means a. that the initial Contributor has attached the notice described in @@ -3296,26 +3296,26 @@ Mozilla Public License, version 2.0 version 1.1 or earlier of the License, but not also under the terms of a Secondary License. -1.6. "Executable Form" +1.6. "Executable Form" means any form of the work other than Source Code Form. -1.7. "Larger Work" +1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. -1.8. "License" +1.8. "License" means this document. -1.9. "Licensable" +1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. -1.10. "Modifications" +1.10. "Modifications" means any of the following: @@ -3324,7 +3324,7 @@ Mozilla Public License, version 2.0 b. any new file in Source Code Form that contains any Covered Software. -1.11. "Patent Claims" of a Contributor +1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such @@ -3332,22 +3332,22 @@ Mozilla Public License, version 2.0 by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. -1.12. "Secondary License" +1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. -1.13. "Source Code Form" +1.13. "Source Code Form" means the form of the work preferred for making modifications. -1.14. "You" (or "Your") +1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that controls, is + License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this - definition, "control" means (a) the power, direct or indirect, to cause + definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. @@ -3386,7 +3386,7 @@ Mozilla Public License, version 2.0 a. for any code that a Contributor has removed from Covered Software; or - b. for infringements caused by: (i) Your and any other third party's + b. for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or @@ -3432,7 +3432,7 @@ Mozilla Public License, version 2.0 the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not - attempt to alter or restrict the recipients' rights in the Source Code + attempt to alter or restrict the recipients' rights in the Source Code Form. 3.2. Distribution of Executable Form @@ -3448,7 +3448,7 @@ Mozilla Public License, version 2.0 b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the - recipients' rights in the Source Code Form under this License. + recipients' rights in the Source Code Form under this License. 3.3. Distribution of a Larger Work @@ -3526,7 +3526,7 @@ Mozilla Public License, version 2.0 6. Disclaimer of Warranty - Covered Software is provided under this License on an "as is" basis, + Covered Software is provided under this License on an "as is" basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. @@ -3548,7 +3548,7 @@ Mozilla Public License, version 2.0 other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from - such party's negligence to the extent applicable law prohibits such + such party's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. @@ -3559,7 +3559,7 @@ Mozilla Public License, version 2.0 of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing - in this Section shall prevent a party's ability to bring cross-claims or + in this Section shall prevent a party's ability to bring cross-claims or counter-claims. 9. Miscellaneous @@ -3618,10 +3618,10 @@ notice. You may add additional accurate notices of copyright ownership. -Exhibit B - "Incompatible With Secondary Licenses" Notice +Exhibit B - "Incompatible With Secondary Licenses" Notice - This Source Code Form is "Incompatible - With Secondary Licenses", as defined by + This Source Code Form is "Incompatible + With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -3644,11 +3644,11 @@ Using the LRU is very simple: ```go l, _ := New(128) -for i := 0; i < 256; i++ { +for i := 0; i < 256; i++ { l.Add(i, nil) } if l.Len() != 128 { - panic(fmt.Sprintf("bad len: %v", l.Len())) + panic(fmt.Sprintf("bad len: %v", l.Len())) } ``` @@ -3657,9 +3657,9 @@ arc.go - github.com/hashicorp/golang-lru package lru import ( - "sync" + "sync" - "github.com/hashicorp/golang-lru/simplelru" + "github.com/hashicorp/golang-lru/simplelru" ) // ARCCache is a thread-safe fixed size Adaptive Replacement Cache (ARC). @@ -3704,7 +3704,7 @@ func NewARC(size int) (*ARCCache, error) { } // Initialize the ARC - c := &ARCCache{ + c := &ARCCache{ size: size, p: 0, t1: t1, @@ -3715,7 +3715,7 @@ func NewARC(size int) (*ARCCache, error) { return c, nil } -// Get looks up a key's value from the cache. +// Get looks up a key's value from the cache. func (c *ARCCache) Get(key interface{}) (value interface{}, ok bool) { c.lock.Lock() defer c.lock.Unlock() @@ -3763,17 +3763,17 @@ func (c *ARCCache) Add(key, value interface{}) { delta := 1 b1Len := c.b1.Len() b2Len := c.b2.Len() - if b2Len > b1Len { + if b2Len > b1Len { delta = b2Len / b1Len } - if c.p+delta >= c.size { + if c.p+delta >= c.size { c.p = c.size } else { - c.p += delta + c.p += delta } // Potentially need to make room in the cache - if c.t1.Len()+c.t2.Len() >= c.size { + if c.t1.Len()+c.t2.Len() >= c.size { c.replace(false) } @@ -3792,17 +3792,17 @@ func (c *ARCCache) Add(key, value interface{}) { delta := 1 b1Len := c.b1.Len() b2Len := c.b2.Len() - if b1Len > b2Len { + if b1Len > b2Len { delta = b1Len / b2Len } - if delta >= c.p { + if delta >= c.p { c.p = 0 } else { c.p -= delta } // Potentially need to make room in the cache - if c.t1.Len()+c.t2.Len() >= c.size { + if c.t1.Len()+c.t2.Len() >= c.size { c.replace(true) } @@ -3815,15 +3815,15 @@ func (c *ARCCache) Add(key, value interface{}) { } // Potentially need to make room in the cache - if c.t1.Len()+c.t2.Len() >= c.size { + if c.t1.Len()+c.t2.Len() >= c.size { c.replace(false) } // Keep the size of the ghost buffers trim - if c.b1.Len() > c.size-c.p { + if c.b1.Len() > c.size-c.p { c.b1.RemoveOldest() } - if c.b2.Len() > c.p { + if c.b2.Len() > c.p { c.b2.RemoveOldest() } @@ -3836,7 +3836,7 @@ func (c *ARCCache) Add(key, value interface{}) { // based on the current learned value of P func (c *ARCCache) replace(b2ContainsKey bool) { t1Len := c.t1.Len() - if t1Len > 0 && (t1Len > c.p || (t1Len == c.p && b2ContainsKey)) { + if t1Len > 0 && (t1Len > c.p || (t1Len == c.p && b2ContainsKey)) { k, _, ok := c.t1.RemoveOldest() if ok { c.b1.Add(k, nil) @@ -3853,7 +3853,7 @@ func (c *ARCCache) replace(b2ContainsKey bool) { func (c *ARCCache) Len() int { c.lock.RLock() defer c.lock.RUnlock() - return c.t1.Len() + c.t2.Len() + return c.t1.Len() + c.t2.Len() } // Keys returns all the cached keys @@ -3917,9 +3917,9 @@ arc_test.go - github.com/hashicorp/golang-lru package lru import ( - "math/rand" - "testing" - "time" + "math/rand" + "testing" + "time" ) func init() { @@ -3929,40 +3929,40 @@ func init() { func BenchmarkARC_Rand(b *testing.B) { l, err := NewARC(8192) if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } trace := make([]int64, b.N*2) - for i := 0; i < b.N*2; i++ { + for i := 0; i < b.N*2; i++ { trace[i] = rand.Int63() % 32768 } b.ResetTimer() var hit, miss int - for i := 0; i < 2*b.N; i++ { + for i := 0; i < 2*b.N; i++ { if i%2 == 0 { l.Add(trace[i], trace[i]) } else { _, ok := l.Get(trace[i]) if ok { - hit++ + hit++ } else { - miss++ + miss++ } } } - b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) + b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) } func BenchmarkARC_Freq(b *testing.B) { l, err := NewARC(8192) if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } trace := make([]int64, b.N*2) - for i := 0; i < b.N*2; i++ { + for i := 0; i < b.N*2; i++ { if i%2 == 0 { trace[i] = rand.Int63() % 16384 } else { @@ -3972,30 +3972,30 @@ func BenchmarkARC_Freq(b *testing.B) { b.ResetTimer() - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { l.Add(trace[i], trace[i]) } var hit, miss int - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { _, ok := l.Get(trace[i]) if ok { - hit++ + hit++ } else { - miss++ + miss++ } } - b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) + b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) } func TestARC_RandomOps(t *testing.T) { size := 128 l, err := NewARC(128) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } n := 200000 - for i := 0; i < n; i++ { + for i := 0; i < n; i++ { key := rand.Int63() % 512 r := rand.Int63() switch r % 3 { @@ -4007,12 +4007,12 @@ func TestARC_RandomOps(t *testing.T) { l.Remove(key) } - if l.t1.Len()+l.t2.Len() > size { - t.Fatalf("bad: t1: %d t2: %d b1: %d b2: %d p: %d", + if l.t1.Len()+l.t2.Len() > size { + t.Fatalf("bad: t1: %d t2: %d b1: %d b2: %d p: %d", l.t1.Len(), l.t2.Len(), l.b1.Len(), l.b2.Len(), l.p) } - if l.b1.Len()+l.b2.Len() > size { - t.Fatalf("bad: t1: %d t2: %d b1: %d b2: %d p: %d", + if l.b1.Len()+l.b2.Len() > size { + t.Fatalf("bad: t1: %d t2: %d b1: %d b2: %d p: %d", l.t1.Len(), l.t2.Len(), l.b1.Len(), l.b2.Len(), l.p) } } @@ -4021,108 +4021,108 @@ func TestARC_RandomOps(t *testing.T) { func TestARC_Get_RecentToFrequent(t *testing.T) { l, err := NewARC(128) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } // Touch all the entries, should be in t1 - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { l.Add(i, i) } if n := l.t1.Len(); n != 128 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.t2.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Get should upgrade to t2 - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { _, ok := l.Get(i) if !ok { - t.Fatalf("missing: %d", i) + t.Fatalf("missing: %d", i) } } if n := l.t1.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.t2.Len(); n != 128 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Get be from t2 - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { _, ok := l.Get(i) if !ok { - t.Fatalf("missing: %d", i) + t.Fatalf("missing: %d", i) } } if n := l.t1.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.t2.Len(); n != 128 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } } func TestARC_Add_RecentToFrequent(t *testing.T) { l, err := NewARC(128) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } // Add initially to t1 l.Add(1, 1) if n := l.t1.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.t2.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Add should upgrade to t2 l.Add(1, 1) if n := l.t1.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.t2.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Add should remain in t2 l.Add(1, 1) if n := l.t1.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.t2.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } } func TestARC_Adaptive(t *testing.T) { l, err := NewARC(4) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } // Fill t1 - for i := 0; i < 4; i++ { + for i := 0; i < 4; i++ { l.Add(i, i) } if n := l.t1.Len(); n != 4 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Move to t2 l.Get(0) l.Get(1) if n := l.t2.Len(); n != 2 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Evict from t1 l.Add(4, 4) if n := l.b1.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Current state @@ -4134,13 +4134,13 @@ func TestARC_Adaptive(t *testing.T) { // Add 2, should cause hit on b1 l.Add(2, 2) if n := l.b1.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if l.p != 1 { - t.Fatalf("bad: %d", l.p) + t.Fatalf("bad: %d", l.p) } if n := l.t2.Len(); n != 3 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Current state @@ -4152,10 +4152,10 @@ func TestARC_Adaptive(t *testing.T) { // Add 4, should migrate to t2 l.Add(4, 4) if n := l.t1.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.t2.Len(); n != 4 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Current state @@ -4167,13 +4167,13 @@ func TestARC_Adaptive(t *testing.T) { // Add 4, should evict to b2 l.Add(5, 5) if n := l.t1.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.t2.Len(); n != 3 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.b2.Len(); n != 1 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } // Current state @@ -4185,19 +4185,19 @@ func TestARC_Adaptive(t *testing.T) { // Add 0, should decrease p l.Add(0, 0) if n := l.t1.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.t2.Len(); n != 4 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.b1.Len(); n != 2 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if n := l.b2.Len(); n != 0 { - t.Fatalf("bad: %d", n) + t.Fatalf("bad: %d", n) } if l.p != 0 { - t.Fatalf("bad: %d", l.p) + t.Fatalf("bad: %d", l.p) } // Current state @@ -4210,85 +4210,85 @@ func TestARC_Adaptive(t *testing.T) { func TestARC(t *testing.T) { l, err := NewARC(128) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - for i := 0; i < 256; i++ { + for i := 0; i < 256; i++ { l.Add(i, i) } if l.Len() != 128 { - t.Fatalf("bad len: %v", l.Len()) + t.Fatalf("bad len: %v", l.Len()) } for i, k := range l.Keys() { - if v, ok := l.Get(k); !ok || v != k || v != i+128 { - t.Fatalf("bad key: %v", k) + if v, ok := l.Get(k); !ok || v != k || v != i+128 { + t.Fatalf("bad key: %v", k) } } - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { _, ok := l.Get(i) if ok { - t.Fatalf("should be evicted") + t.Fatalf("should be evicted") } } - for i := 128; i < 256; i++ { + for i := 128; i < 256; i++ { _, ok := l.Get(i) if !ok { - t.Fatalf("should not be evicted") + t.Fatalf("should not be evicted") } } - for i := 128; i < 192; i++ { + for i := 128; i < 192; i++ { l.Remove(i) _, ok := l.Get(i) if ok { - t.Fatalf("should be deleted") + t.Fatalf("should be deleted") } } l.Purge() if l.Len() != 0 { - t.Fatalf("bad len: %v", l.Len()) + t.Fatalf("bad len: %v", l.Len()) } if _, ok := l.Get(200); ok { - t.Fatalf("should contain nothing") + t.Fatalf("should contain nothing") } } -// Test that Contains doesn't update recent-ness +// Test that Contains doesn't update recent-ness func TestARC_Contains(t *testing.T) { l, err := NewARC(2) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) if !l.Contains(1) { - t.Errorf("1 should be contained") + t.Errorf("1 should be contained") } l.Add(3, 3) if l.Contains(1) { - t.Errorf("Contains should not have updated recent-ness of 1") + t.Errorf("Contains should not have updated recent-ness of 1") } } -// Test that Peek doesn't update recent-ness +// Test that Peek doesn't update recent-ness func TestARC_Peek(t *testing.T) { l, err := NewARC(2) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) if v, ok := l.Peek(1); !ok || v != 1 { - t.Errorf("1 should be set to 1: %v, %v", v, ok) + t.Errorf("1 should be set to 1: %v, %v", v, ok) } l.Add(3, 3) if l.Contains(1) { - t.Errorf("should not have updated recent-ness of 1") + t.Errorf("should not have updated recent-ness of 1") } } @@ -4327,9 +4327,9 @@ lru.go - github.com/hashicorp/golang-lru package lru import ( - "sync" + "sync" - "github.com/hashicorp/golang-lru/simplelru" + "github.com/hashicorp/golang-lru/simplelru" ) // Cache is a thread-safe fixed size LRU cache. @@ -4350,7 +4350,7 @@ func NewWithEvict(size int, onEvicted func(key interface{}, value interface{})) if err != nil { return nil, err } - c := &Cache{ + c := &Cache{ lru: lru, } return c, nil @@ -4371,7 +4371,7 @@ func (c *Cache) Add(key, value interface{}) (evicted bool) { return evicted } -// Get looks up a key's value from the cache. +// Get looks up a key's value from the cache. func (c *Cache) Get(key interface{}) (value interface{}, ok bool) { c.lock.Lock() value, ok = c.lru.Get(key) @@ -4389,7 +4389,7 @@ func (c *Cache) Contains(key interface{}) bool { } // Peek returns the key value (or undefined if not found) without updating -// the "recently used"-ness of the key. +// the "recently used"-ness of the key. func (c *Cache) Peek(key interface{}) (value interface{}, ok bool) { c.lock.RLock() value, ok = c.lru.Peek(key) @@ -4480,47 +4480,47 @@ lru_test.go - github.com/hashicorp/golang-lru package lru import ( - "math/rand" - "testing" + "math/rand" + "testing" ) func BenchmarkLRU_Rand(b *testing.B) { l, err := New(8192) if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } trace := make([]int64, b.N*2) - for i := 0; i < b.N*2; i++ { + for i := 0; i < b.N*2; i++ { trace[i] = rand.Int63() % 32768 } b.ResetTimer() var hit, miss int - for i := 0; i < 2*b.N; i++ { + for i := 0; i < 2*b.N; i++ { if i%2 == 0 { l.Add(trace[i], trace[i]) } else { _, ok := l.Get(trace[i]) if ok { - hit++ + hit++ } else { - miss++ + miss++ } } } - b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) + b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) } func BenchmarkLRU_Freq(b *testing.B) { l, err := New(8192) if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } trace := make([]int64, b.N*2) - for i := 0; i < b.N*2; i++ { + for i := 0; i < b.N*2; i++ { if i%2 == 0 { trace[i] = rand.Int63() % 16384 } else { @@ -4530,84 +4530,84 @@ func BenchmarkLRU_Freq(b *testing.B) { b.ResetTimer() - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { l.Add(trace[i], trace[i]) } var hit, miss int - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { _, ok := l.Get(trace[i]) if ok { - hit++ + hit++ } else { - miss++ + miss++ } } - b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) + b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(miss)) } func TestLRU(t *testing.T) { evictCounter := 0 onEvicted := func(k interface{}, v interface{}) { if k != v { - t.Fatalf("Evict values not equal (%v!=%v)", k, v) + t.Fatalf("Evict values not equal (%v!=%v)", k, v) } - evictCounter++ + evictCounter++ } l, err := NewWithEvict(128, onEvicted) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - for i := 0; i < 256; i++ { + for i := 0; i < 256; i++ { l.Add(i, i) } if l.Len() != 128 { - t.Fatalf("bad len: %v", l.Len()) + t.Fatalf("bad len: %v", l.Len()) } if evictCounter != 128 { - t.Fatalf("bad evict count: %v", evictCounter) + t.Fatalf("bad evict count: %v", evictCounter) } for i, k := range l.Keys() { - if v, ok := l.Get(k); !ok || v != k || v != i+128 { - t.Fatalf("bad key: %v", k) + if v, ok := l.Get(k); !ok || v != k || v != i+128 { + t.Fatalf("bad key: %v", k) } } - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { _, ok := l.Get(i) if ok { - t.Fatalf("should be evicted") + t.Fatalf("should be evicted") } } - for i := 128; i < 256; i++ { + for i := 128; i < 256; i++ { _, ok := l.Get(i) if !ok { - t.Fatalf("should not be evicted") + t.Fatalf("should not be evicted") } } - for i := 128; i < 192; i++ { + for i := 128; i < 192; i++ { l.Remove(i) _, ok := l.Get(i) if ok { - t.Fatalf("should be deleted") + t.Fatalf("should be deleted") } } l.Get(192) // expect 192 to be last key in l.Keys() for i, k := range l.Keys() { - if (i < 63 && k != i+193) || (i == 63 && k != 192) { - t.Fatalf("out of order key: %v", k) + if (i < 63 && k != i+193) || (i == 63 && k != 192) { + t.Fatalf("out of order key: %v", k) } } l.Purge() if l.Len() != 0 { - t.Fatalf("bad len: %v", l.Len()) + t.Fatalf("bad len: %v", l.Len()) } if _, ok := l.Get(200); ok { - t.Fatalf("should contain nothing") + t.Fatalf("should contain nothing") } } @@ -4615,120 +4615,120 @@ func TestLRU(t *testing.T) { func TestLRUAdd(t *testing.T) { evictCounter := 0 onEvicted := func(k interface{}, v interface{}) { - evictCounter++ + evictCounter++ } l, err := NewWithEvict(1, onEvicted) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if l.Add(1, 1) == true || evictCounter != 0 { - t.Errorf("should not have an eviction") + t.Errorf("should not have an eviction") } if l.Add(2, 2) == false || evictCounter != 1 { - t.Errorf("should have an eviction") + t.Errorf("should have an eviction") } } -// test that Contains doesn't update recent-ness +// test that Contains doesn't update recent-ness func TestLRUContains(t *testing.T) { l, err := New(2) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) if !l.Contains(1) { - t.Errorf("1 should be contained") + t.Errorf("1 should be contained") } l.Add(3, 3) if l.Contains(1) { - t.Errorf("Contains should not have updated recent-ness of 1") + t.Errorf("Contains should not have updated recent-ness of 1") } } -// test that ContainsOrAdd doesn't update recent-ness +// test that ContainsOrAdd doesn't update recent-ness func TestLRUContainsOrAdd(t *testing.T) { l, err := New(2) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) contains, evict := l.ContainsOrAdd(1, 1) if !contains { - t.Errorf("1 should be contained") + t.Errorf("1 should be contained") } if evict { - t.Errorf("nothing should be evicted here") + t.Errorf("nothing should be evicted here") } l.Add(3, 3) contains, evict = l.ContainsOrAdd(1, 1) if contains { - t.Errorf("1 should not have been contained") + t.Errorf("1 should not have been contained") } if !evict { - t.Errorf("an eviction should have occurred") + t.Errorf("an eviction should have occurred") } if !l.Contains(1) { - t.Errorf("now 1 should be contained") + t.Errorf("now 1 should be contained") } } -// test that PeekOrAdd doesn't update recent-ness +// test that PeekOrAdd doesn't update recent-ness func TestLRUPeekOrAdd(t *testing.T) { l, err := New(2) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) previous, contains, evict := l.PeekOrAdd(1, 1) if !contains { - t.Errorf("1 should be contained") + t.Errorf("1 should be contained") } if evict { - t.Errorf("nothing should be evicted here") + t.Errorf("nothing should be evicted here") } if previous != 1 { - t.Errorf("previous is not equal to 1") + t.Errorf("previous is not equal to 1") } l.Add(3, 3) contains, evict = l.ContainsOrAdd(1, 1) if contains { - t.Errorf("1 should not have been contained") + t.Errorf("1 should not have been contained") } if !evict { - t.Errorf("an eviction should have occurred") + t.Errorf("an eviction should have occurred") } if !l.Contains(1) { - t.Errorf("now 1 should be contained") + t.Errorf("now 1 should be contained") } } -// test that Peek doesn't update recent-ness +// test that Peek doesn't update recent-ness func TestLRUPeek(t *testing.T) { l, err := New(2) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) if v, ok := l.Peek(1); !ok || v != 1 { - t.Errorf("1 should be set to 1: %v, %v", v, ok) + t.Errorf("1 should be set to 1: %v, %v", v, ok) } l.Add(3, 3) if l.Contains(1) { - t.Errorf("should not have updated recent-ness of 1") + t.Errorf("should not have updated recent-ness of 1") } } @@ -4736,11 +4736,11 @@ func TestLRUPeek(t *testing.T) { func TestLRUResize(t *testing.T) { onEvictCounter := 0 onEvicted := func(k interface{}, v interface{}) { - onEvictCounter++ + onEvictCounter++ } l, err := NewWithEvict(2, onEvicted) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } // Downsize @@ -4748,26 +4748,26 @@ func TestLRUResize(t *testing.T) { l.Add(2, 2) evicted := l.Resize(1); if evicted != 1 { - t.Errorf("1 element should have been evicted: %v", evicted) + t.Errorf("1 element should have been evicted: %v", evicted) } if onEvictCounter != 1 { - t.Errorf("onEvicted should have been called 1 time: %v", onEvictCounter) + t.Errorf("onEvicted should have been called 1 time: %v", onEvictCounter) } l.Add(3, 3) if l.Contains(1) { - t.Errorf("Element 1 should have been evicted") + t.Errorf("Element 1 should have been evicted") } // Upsize evicted = l.Resize(2); if evicted != 0 { - t.Errorf("0 elements should have been evicted: %v", evicted) + t.Errorf("0 elements should have been evicted: %v", evicted) } l.Add(4, 4) if !l.Contains(3) || !l.Contains(4) { - t.Errorf("Cache should have contained 2 elements") + t.Errorf("Cache should have contained 2 elements") } } @@ -4776,8 +4776,8 @@ lru.go - github.com/hashicorp/golang-lru/simplelru package simplelru import ( - "container/list" - "errors" + "container/list" + "errors" ) // EvictCallback is used to get a callback when a cache entry is evicted @@ -4799,10 +4799,10 @@ type entry struct { // NewLRU constructs an LRU of the given size func NewLRU(size int, onEvict EvictCallback) (*LRU, error) { - if size <= 0 { - return nil, errors.New("Must provide a positive size") + if size <= 0 { + return nil, errors.New("Must provide a positive size") } - c := &LRU{ + c := &LRU{ size: size, evictList: list.New(), items: make(map[interface{}]*list.Element), @@ -4832,11 +4832,11 @@ func (c *LRU) Add(key, value interface{}) (evicted bool) { } // Add new item - ent := &entry{key, value} + ent := &entry{key, value} entry := c.evictList.PushFront(ent) c.items[key] = entry - evict := c.evictList.Len() > c.size + evict := c.evictList.Len() > c.size // Verify size not exceeded if evict { c.removeOldest() @@ -4844,7 +4844,7 @@ func (c *LRU) Add(key, value interface{}) (evicted bool) { return evict } -// Get looks up a key's value from the cache. +// Get looks up a key's value from the cache. func (c *LRU) Get(key interface{}) (value interface{}, ok bool) { if ent, ok := c.items[key]; ok { c.evictList.MoveToFront(ent) @@ -4864,7 +4864,7 @@ func (c *LRU) Contains(key interface{}) (ok bool) { } // Peek returns the key value (or undefined if not found) without updating -// the "recently used"-ness of the key. +// the "recently used"-ness of the key. func (c *LRU) Peek(key interface{}) (value interface{}, ok bool) { var ent *list.Element if ent, ok = c.items[key]; ok { @@ -4910,7 +4910,7 @@ func (c *LRU) Keys() []interface{} { i := 0 for ent := c.evictList.Back(); ent != nil; ent = ent.Prev() { keys[i] = ent.Value.(*entry).key - i++ + i++ } return keys } @@ -4923,10 +4923,10 @@ func (c *LRU) Len() int { // Resize changes the cache size. func (c *LRU) Resize(size int) (evicted int) { diff := c.Len() - size - if diff < 0 { + if diff < 0 { diff = 0 } - for i := 0; i < diff; i++ { + for i := 0; i < diff; i++ { c.removeOldest() } c.size = size @@ -4958,17 +4958,17 @@ package simplelru // LRUCache is the interface for simple LRU cache. type LRUCache interface { // Adds a value to the cache, returns true if an eviction occurred and - // updates the "recently used"-ness of the key. + // updates the "recently used"-ness of the key. Add(key, value interface{}) bool - // Returns key's value from the cache and - // updates the "recently used"-ness of the key. #value, isFound + // Returns key's value from the cache and + // updates the "recently used"-ness of the key. #value, isFound Get(key interface{}) (value interface{}, ok bool) // Checks if a key exists in cache without updating the recent-ness. Contains(key interface{}) (ok bool) - // Returns key's value without updating the "recently used"-ness of the key. + // Returns key's value without updating the "recently used"-ness of the key. Peek(key interface{}) (value interface{}, ok bool) // Removes a key from the cache. @@ -4997,111 +4997,111 @@ type LRUCache interface { lru_test.go - github.com/hashicorp/golang-lru/simplelru package simplelru -import "testing" +import "testing" func TestLRU(t *testing.T) { evictCounter := 0 onEvicted := func(k interface{}, v interface{}) { if k != v { - t.Fatalf("Evict values not equal (%v!=%v)", k, v) + t.Fatalf("Evict values not equal (%v!=%v)", k, v) } - evictCounter++ + evictCounter++ } l, err := NewLRU(128, onEvicted) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - for i := 0; i < 256; i++ { + for i := 0; i < 256; i++ { l.Add(i, i) } if l.Len() != 128 { - t.Fatalf("bad len: %v", l.Len()) + t.Fatalf("bad len: %v", l.Len()) } if evictCounter != 128 { - t.Fatalf("bad evict count: %v", evictCounter) + t.Fatalf("bad evict count: %v", evictCounter) } for i, k := range l.Keys() { - if v, ok := l.Get(k); !ok || v != k || v != i+128 { - t.Fatalf("bad key: %v", k) + if v, ok := l.Get(k); !ok || v != k || v != i+128 { + t.Fatalf("bad key: %v", k) } } - for i := 0; i < 128; i++ { + for i := 0; i < 128; i++ { _, ok := l.Get(i) if ok { - t.Fatalf("should be evicted") + t.Fatalf("should be evicted") } } - for i := 128; i < 256; i++ { + for i := 128; i < 256; i++ { _, ok := l.Get(i) if !ok { - t.Fatalf("should not be evicted") + t.Fatalf("should not be evicted") } } - for i := 128; i < 192; i++ { + for i := 128; i < 192; i++ { ok := l.Remove(i) if !ok { - t.Fatalf("should be contained") + t.Fatalf("should be contained") } ok = l.Remove(i) if ok { - t.Fatalf("should not be contained") + t.Fatalf("should not be contained") } _, ok = l.Get(i) if ok { - t.Fatalf("should be deleted") + t.Fatalf("should be deleted") } } l.Get(192) // expect 192 to be last key in l.Keys() for i, k := range l.Keys() { - if (i < 63 && k != i+193) || (i == 63 && k != 192) { - t.Fatalf("out of order key: %v", k) + if (i < 63 && k != i+193) || (i == 63 && k != 192) { + t.Fatalf("out of order key: %v", k) } } l.Purge() if l.Len() != 0 { - t.Fatalf("bad len: %v", l.Len()) + t.Fatalf("bad len: %v", l.Len()) } if _, ok := l.Get(200); ok { - t.Fatalf("should contain nothing") + t.Fatalf("should contain nothing") } } func TestLRU_GetOldest_RemoveOldest(t *testing.T) { l, err := NewLRU(128, nil) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - for i := 0; i < 256; i++ { + for i := 0; i < 256; i++ { l.Add(i, i) } k, _, ok := l.GetOldest() if !ok { - t.Fatalf("missing") + t.Fatalf("missing") } if k.(int) != 128 { - t.Fatalf("bad: %v", k) + t.Fatalf("bad: %v", k) } k, _, ok = l.RemoveOldest() if !ok { - t.Fatalf("missing") + t.Fatalf("missing") } if k.(int) != 128 { - t.Fatalf("bad: %v", k) + t.Fatalf("bad: %v", k) } k, _, ok = l.RemoveOldest() if !ok { - t.Fatalf("missing") + t.Fatalf("missing") } if k.(int) != 129 { - t.Fatalf("bad: %v", k) + t.Fatalf("bad: %v", k) } } @@ -5109,57 +5109,57 @@ func TestLRU_GetOldest_RemoveOldest(t *testing.T) { func TestLRU_Add(t *testing.T) { evictCounter := 0 onEvicted := func(k interface{}, v interface{}) { - evictCounter++ + evictCounter++ } l, err := NewLRU(1, onEvicted) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if l.Add(1, 1) == true || evictCounter != 0 { - t.Errorf("should not have an eviction") + t.Errorf("should not have an eviction") } if l.Add(2, 2) == false || evictCounter != 1 { - t.Errorf("should have an eviction") + t.Errorf("should have an eviction") } } -// Test that Contains doesn't update recent-ness +// Test that Contains doesn't update recent-ness func TestLRU_Contains(t *testing.T) { l, err := NewLRU(2, nil) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) if !l.Contains(1) { - t.Errorf("1 should be contained") + t.Errorf("1 should be contained") } l.Add(3, 3) if l.Contains(1) { - t.Errorf("Contains should not have updated recent-ness of 1") + t.Errorf("Contains should not have updated recent-ness of 1") } } -// Test that Peek doesn't update recent-ness +// Test that Peek doesn't update recent-ness func TestLRU_Peek(t *testing.T) { l, err := NewLRU(2, nil) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } l.Add(1, 1) l.Add(2, 2) if v, ok := l.Peek(1); !ok || v != 1 { - t.Errorf("1 should be set to 1: %v, %v", v, ok) + t.Errorf("1 should be set to 1: %v, %v", v, ok) } l.Add(3, 3) if l.Contains(1) { - t.Errorf("should not have updated recent-ness of 1") + t.Errorf("should not have updated recent-ness of 1") } } @@ -5167,11 +5167,11 @@ func TestLRU_Peek(t *testing.T) { func TestLRU_Resize(t *testing.T) { onEvictCounter := 0 onEvicted := func(k interface{}, v interface{}) { - onEvictCounter++ + onEvictCounter++ } l, err := NewLRU(2, onEvicted) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } // Downsize @@ -5179,26 +5179,26 @@ func TestLRU_Resize(t *testing.T) { l.Add(2, 2) evicted := l.Resize(1); if evicted != 1 { - t.Errorf("1 element should have been evicted: %v", evicted) + t.Errorf("1 element should have been evicted: %v", evicted) } if onEvictCounter != 1 { - t.Errorf("onEvicted should have been called 1 time: %v", onEvictCounter) + t.Errorf("onEvicted should have been called 1 time: %v", onEvictCounter) } l.Add(3, 3) if l.Contains(1) { - t.Errorf("Element 1 should have been evicted") + t.Errorf("Element 1 should have been evicted") } // Upsize evicted = l.Resize(2); if evicted != 0 { - t.Errorf("0 elements should have been evicted: %v", evicted) + t.Errorf("0 elements should have been evicted: %v", evicted) } l.Add(4, 4) if !l.Contains(3) || !l.Contains(4) { - t.Errorf("Cache should have contained 2 elements") + t.Errorf("Cache should have contained 2 elements") } } @@ -5234,28 +5234,28 @@ Mozilla Public License, version 2.0 1. Definitions -1.1. "Contributor" +1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. -1.2. "Contributor Version" +1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a - Contributor and that particular Contributor's Contribution. + Contributor and that particular Contributor's Contribution. -1.3. "Contribution" +1.3. "Contribution" means Covered Software of a particular Contributor. -1.4. "Covered Software" +1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. -1.5. "Incompatible With Secondary Licenses" +1.5. "Incompatible With Secondary Licenses" means a. that the initial Contributor has attached the notice described in @@ -5265,26 +5265,26 @@ Mozilla Public License, version 2.0 version 1.1 or earlier of the License, but not also under the terms of a Secondary License. -1.6. "Executable Form" +1.6. "Executable Form" means any form of the work other than Source Code Form. -1.7. "Larger Work" +1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. -1.8. "License" +1.8. "License" means this document. -1.9. "Licensable" +1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. -1.10. "Modifications" +1.10. "Modifications" means any of the following: @@ -5293,7 +5293,7 @@ Mozilla Public License, version 2.0 b. any new file in Source Code Form that contains any Covered Software. -1.11. "Patent Claims" of a Contributor +1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such @@ -5301,22 +5301,22 @@ Mozilla Public License, version 2.0 by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. -1.12. "Secondary License" +1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. -1.13. "Source Code Form" +1.13. "Source Code Form" means the form of the work preferred for making modifications. -1.14. "You" (or "Your") +1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that controls, is + License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this - definition, "control" means (a) the power, direct or indirect, to cause + definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. @@ -5355,7 +5355,7 @@ Mozilla Public License, version 2.0 a. for any code that a Contributor has removed from Covered Software; or - b. for infringements caused by: (i) Your and any other third party's + b. for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or @@ -5401,7 +5401,7 @@ Mozilla Public License, version 2.0 the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not - attempt to alter or restrict the recipients' rights in the Source Code + attempt to alter or restrict the recipients' rights in the Source Code Form. 3.2. Distribution of Executable Form @@ -5417,7 +5417,7 @@ Mozilla Public License, version 2.0 b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the - recipients' rights in the Source Code Form under this License. + recipients' rights in the Source Code Form under this License. 3.3. Distribution of a Larger Work @@ -5495,7 +5495,7 @@ Mozilla Public License, version 2.0 6. Disclaimer of Warranty - Covered Software is provided under this License on an "as is" basis, + Covered Software is provided under this License on an "as is" basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. @@ -5517,7 +5517,7 @@ Mozilla Public License, version 2.0 other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from - such party's negligence to the extent applicable law prohibits such + such party's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. @@ -5528,7 +5528,7 @@ Mozilla Public License, version 2.0 of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing - in this Section shall prevent a party's ability to bring cross-claims or + in this Section shall prevent a party's ability to bring cross-claims or counter-claims. 9. Miscellaneous @@ -5587,10 +5587,10 @@ notice. You may add additional accurate notices of copyright ownership. -Exhibit B - "Incompatible With Secondary Licenses" Notice +Exhibit B - "Incompatible With Secondary Licenses" Notice - This Source Code Form is "Incompatible - With Secondary Licenses", as defined by + This Source Code Form is "Incompatible + With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ README.md - github.com/hashicorp/yamux @@ -5651,7 +5651,7 @@ func client() { } // Stream implements net.Conn - stream.Write([]byte("ping")) + stream.Write([]byte("ping")) } func server() { @@ -5686,8 +5686,8 @@ addr.go - github.com/hashicorp/yamux package yamux import ( - "fmt" - "net" + "fmt" + "net" ) // hasAddr is used to get the address from the underlying connection @@ -5702,11 +5702,11 @@ type yamuxAddr struct { } func (*yamuxAddr) Network() string { - return "yamux" + return "yamux" } func (y *yamuxAddr) String() string { - return fmt.Sprintf("yamux:%s", y.Addr) + return fmt.Sprintf("yamux:%s", y.Addr) } // Addr is used to get the address of the listener. @@ -5719,7 +5719,7 @@ func (s *Session) Addr() net.Addr { func (s *Session) LocalAddr() net.Addr { addr, ok := s.conn.(hasAddr) if !ok { - return &yamuxAddr{"local"} + return &yamuxAddr{"local"} } return addr.LocalAddr() } @@ -5729,7 +5729,7 @@ func (s *Session) LocalAddr() net.Addr { func (s *Session) RemoteAddr() net.Addr { addr, ok := s.conn.(hasAddr) if !ok { - return &yamuxAddr{"remote"} + return &yamuxAddr{"remote"} } return addr.RemoteAddr() } @@ -5749,9 +5749,9 @@ bench_test.go - github.com/hashicorp/yamux package yamux import ( - "io" - "io/ioutil" - "testing" + "io" + "io/ioutil" + "testing" ) func BenchmarkPing(b *testing.B) { @@ -5764,13 +5764,13 @@ func BenchmarkPing(b *testing.B) { b.ReportAllocs() b.ResetTimer() - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { rtt, err := client.Ping() if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } if rtt == 0 { - b.Fatalf("bad: %v", rtt) + b.Fatalf("bad: %v", rtt) } } } @@ -5789,7 +5789,7 @@ func BenchmarkAccept(b *testing.B) { go func() { defer close(doneCh) - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { stream, err := server.AcceptStream() if err != nil { return @@ -5798,14 +5798,14 @@ func BenchmarkAccept(b *testing.B) { } }() - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { stream, err := client.Open() if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } stream.Close() } - <-doneCh + <-doneCh } func BenchmarkSendRecv32(b *testing.B) { @@ -5880,21 +5880,21 @@ func benchmarkSendRecv(b *testing.B, sendSize, recvSize int) { switch { case sendSize == recvSize: - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { if _, err := stream.Read(recvBuf); err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } } - case recvSize > sendSize: - b.Fatalf("bad test case; recvSize was: %d and sendSize was: %d, but recvSize must be <= sendSize!", recvSize, sendSize) + case recvSize > sendSize: + b.Fatalf("bad test case; recvSize was: %d and sendSize was: %d, but recvSize must be <= sendSize!", recvSize, sendSize) default: chunks := sendSize / recvSize - for i := 0; i < b.N; i++ { - for j := 0; j < chunks; j++ { + for i := 0; i < b.N; i++ { + for j := 0; j < chunks; j++ { if _, err := stream.Read(recvBuf); err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } } } @@ -5903,16 +5903,16 @@ func benchmarkSendRecv(b *testing.B, sendSize, recvSize int) { stream, err := client.Open() if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } defer stream.Close() - for i := 0; i < b.N; i++ { + for i := 0; i < b.N; i++ { if _, err := stream.Write(sendBuf); err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } } - <-doneCh + <-doneCh } func BenchmarkSendRecvParallel32(b *testing.B) { @@ -5981,23 +5981,23 @@ func benchmarkSendRecvParallel(b *testing.B, sendSize int) { defer stream.Close() if _, err := discarder.ReadFrom(stream); err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } }() stream, err := client.Open() if err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } for pb.Next() { if _, err := stream.Write(sendBuf); err != nil { - b.Fatalf("err: %v", err) + b.Fatalf("err: %v", err) } } stream.Close() - <-doneCh + <-doneCh }) } @@ -6006,56 +6006,56 @@ const.go - github.com/hashicorp/yamux package yamux import ( - "encoding/binary" - "fmt" + "encoding/binary" + "fmt" ) var ( // ErrInvalidVersion means we received a frame with an // invalid version - ErrInvalidVersion = fmt.Errorf("invalid protocol version") + ErrInvalidVersion = fmt.Errorf("invalid protocol version") // ErrInvalidMsgType means we received a frame with an // invalid message type - ErrInvalidMsgType = fmt.Errorf("invalid msg type") + ErrInvalidMsgType = fmt.Errorf("invalid msg type") // ErrSessionShutdown is used if there is a shutdown during // an operation - ErrSessionShutdown = fmt.Errorf("session shutdown") + ErrSessionShutdown = fmt.Errorf("session shutdown") // ErrStreamsExhausted is returned if we have no more // stream ids to issue - ErrStreamsExhausted = fmt.Errorf("streams exhausted") + ErrStreamsExhausted = fmt.Errorf("streams exhausted") // ErrDuplicateStream is used if a duplicate stream is // opened inbound - ErrDuplicateStream = fmt.Errorf("duplicate stream initiated") + ErrDuplicateStream = fmt.Errorf("duplicate stream initiated") // ErrReceiveWindowExceeded indicates the window was exceeded - ErrRecvWindowExceeded = fmt.Errorf("recv window exceeded") + ErrRecvWindowExceeded = fmt.Errorf("recv window exceeded") // ErrTimeout is used when we reach an IO deadline - ErrTimeout = fmt.Errorf("i/o deadline reached") + ErrTimeout = fmt.Errorf("i/o deadline reached") // ErrStreamClosed is returned when using a closed stream - ErrStreamClosed = fmt.Errorf("stream closed") + ErrStreamClosed = fmt.Errorf("stream closed") // ErrUnexpectedFlag is set when we get an unexpected flag - ErrUnexpectedFlag = fmt.Errorf("unexpected flag") + ErrUnexpectedFlag = fmt.Errorf("unexpected flag") // ErrRemoteGoAway is used when we get a go away from the other side - ErrRemoteGoAway = fmt.Errorf("remote end is not accepting connections") + ErrRemoteGoAway = fmt.Errorf("remote end is not accepting connections") // ErrConnectionReset is sent if a stream is reset. This can happen // if the backlog is exceeded, or if there was a remote GoAway. - ErrConnectionReset = fmt.Errorf("connection reset") + ErrConnectionReset = fmt.Errorf("connection reset") - // ErrConnectionWriteTimeout indicates that we hit the "safety valve" + // ErrConnectionWriteTimeout indicates that we hit the "safety valve" // timeout writing to the underlying stream connection. - ErrConnectionWriteTimeout = fmt.Errorf("connection write timeout") + ErrConnectionWriteTimeout = fmt.Errorf("connection write timeout") // ErrKeepAliveTimeout is sent if a missed keepalive caused the stream close - ErrKeepAliveTimeout = fmt.Errorf("keepalive timeout") + ErrKeepAliveTimeout = fmt.Errorf("keepalive timeout") ) const ( @@ -6086,7 +6086,7 @@ const ( const ( // SYN is sent to signal a new stream. May // be sent with a data payload - flagSYN uint16 = 1 << iota + flagSYN uint16 = 1 << iota // ACK is sent to acknowledge a new stream. May // be sent with a data payload @@ -6122,8 +6122,8 @@ const ( sizeOfFlags = 2 sizeOfStreamID = 4 sizeOfLength = 4 - headerSize = sizeOfVersion + sizeOfType + sizeOfFlags + - sizeOfStreamID + sizeOfLength + headerSize = sizeOfVersion + sizeOfType + sizeOfFlags + + sizeOfStreamID + sizeOfLength ) type header []byte @@ -6149,7 +6149,7 @@ func (h header) Length() uint32 { } func (h header) String() string { - return fmt.Sprintf("Vsn:%d Type:%d Flags:%d StreamID:%d Length:%d", + return fmt.Sprintf("Vsn:%d Type:%d Flags:%d StreamID:%d Length:%d", h.Version(), h.MsgType(), h.Flags(), h.StreamID(), h.Length()) } @@ -6166,52 +6166,52 @@ const_test.go - github.com/hashicorp/yamux package yamux import ( - "testing" + "testing" ) func TestConst(t *testing.T) { if protoVersion != 0 { - t.Fatalf("bad: %v", protoVersion) + t.Fatalf("bad: %v", protoVersion) } if typeData != 0 { - t.Fatalf("bad: %v", typeData) + t.Fatalf("bad: %v", typeData) } if typeWindowUpdate != 1 { - t.Fatalf("bad: %v", typeWindowUpdate) + t.Fatalf("bad: %v", typeWindowUpdate) } if typePing != 2 { - t.Fatalf("bad: %v", typePing) + t.Fatalf("bad: %v", typePing) } if typeGoAway != 3 { - t.Fatalf("bad: %v", typeGoAway) + t.Fatalf("bad: %v", typeGoAway) } if flagSYN != 1 { - t.Fatalf("bad: %v", flagSYN) + t.Fatalf("bad: %v", flagSYN) } if flagACK != 2 { - t.Fatalf("bad: %v", flagACK) + t.Fatalf("bad: %v", flagACK) } if flagFIN != 4 { - t.Fatalf("bad: %v", flagFIN) + t.Fatalf("bad: %v", flagFIN) } if flagRST != 8 { - t.Fatalf("bad: %v", flagRST) + t.Fatalf("bad: %v", flagRST) } if goAwayNormal != 0 { - t.Fatalf("bad: %v", goAwayNormal) + t.Fatalf("bad: %v", goAwayNormal) } if goAwayProtoErr != 1 { - t.Fatalf("bad: %v", goAwayProtoErr) + t.Fatalf("bad: %v", goAwayProtoErr) } if goAwayInternalErr != 2 { - t.Fatalf("bad: %v", goAwayInternalErr) + t.Fatalf("bad: %v", goAwayInternalErr) } if headerSize != 12 { - t.Fatalf("bad header size") + t.Fatalf("bad header size") } } @@ -6220,19 +6220,19 @@ func TestEncodeDecode(t *testing.T) { hdr.encode(typeWindowUpdate, flagACK|flagRST, 1234, 4321) if hdr.Version() != protoVersion { - t.Fatalf("bad: %v", hdr) + t.Fatalf("bad: %v", hdr) } if hdr.MsgType() != typeWindowUpdate { - t.Fatalf("bad: %v", hdr) + t.Fatalf("bad: %v", hdr) } if hdr.Flags() != flagACK|flagRST { - t.Fatalf("bad: %v", hdr) + t.Fatalf("bad: %v", hdr) } if hdr.StreamID() != 1234 { - t.Fatalf("bad: %v", hdr) + t.Fatalf("bad: %v", hdr) } if hdr.Length() != 4321 { - t.Fatalf("bad: %v", hdr) + t.Fatalf("bad: %v", hdr) } } @@ -6247,11 +6247,11 @@ mux.go - github.com/hashicorp/yamux package yamux import ( - "fmt" - "io" - "log" - "os" - "time" + "fmt" + "io" + "log" + "os" + "time" ) // Config is used to tune the Yamux session @@ -6267,9 +6267,9 @@ type Config struct { // KeepAliveInterval is how often to perform the keep alive KeepAliveInterval time.Duration - // ConnectionWriteTimeout is meant to be a "safety valve" timeout after + // ConnectionWriteTimeout is meant to be a "safety valve" timeout after // we which will suspect a problem with the underlying connection and - // close it. This is only applied to writes, where's there's generally + // close it. This is only applied to writes, where's there's generally // an expectation that things will move along quickly. ConnectionWriteTimeout time.Duration @@ -6295,7 +6295,7 @@ type Config struct { // DefaultConfig is used to return a default configuration func DefaultConfig() *Config { - return &Config{ + return &Config{ AcceptBacklog: 256, EnableKeepAlive: true, KeepAliveInterval: 30 * time.Second, @@ -6308,19 +6308,19 @@ func DefaultConfig() *Config { // VerifyConfig is used to verify the sanity of configuration func VerifyConfig(config *Config) error { - if config.AcceptBacklog <= 0 { - return fmt.Errorf("backlog must be positive") + if config.AcceptBacklog <= 0 { + return fmt.Errorf("backlog must be positive") } if config.KeepAliveInterval == 0 { - return fmt.Errorf("keep-alive interval must be positive") + return fmt.Errorf("keep-alive interval must be positive") } - if config.MaxStreamWindowSize < initialStreamWindow { - return fmt.Errorf("MaxStreamWindowSize must be larger than %d", initialStreamWindow) + if config.MaxStreamWindowSize < initialStreamWindow { + return fmt.Errorf("MaxStreamWindowSize must be larger than %d", initialStreamWindow) } - if config.LogOutput != nil && config.Logger != nil { - return fmt.Errorf("both Logger and LogOutput may not be set, select one") - } else if config.LogOutput == nil && config.Logger == nil { - return fmt.Errorf("one of Logger or LogOutput must be set, select one") + if config.LogOutput != nil && config.Logger != nil { + return fmt.Errorf("both Logger and LogOutput may not be set, select one") + } else if config.LogOutput == nil && config.Logger == nil { + return fmt.Errorf("one of Logger or LogOutput must be set, select one") } return nil } @@ -6356,17 +6356,17 @@ session.go - github.com/hashicorp/yamux package yamux import ( - "bufio" - "fmt" - "io" - "io/ioutil" - "log" - "math" - "net" - "strings" - "sync" - "sync/atomic" - "time" + "bufio" + "fmt" + "io" + "io/ioutil" + "log" + "math" + "net" + "strings" + "sync" + "sync/atomic" + "time" ) // Session is used to wrap a reliable ordered connection and to @@ -6443,10 +6443,10 @@ type sendReady struct { func newSession(config *Config, conn io.ReadWriteCloser, client bool) *Session { logger := config.Logger if logger == nil { - logger = log.New(config.LogOutput, "", log.LstdFlags) + logger = log.New(config.LogOutput, "", log.LstdFlags) } - s := &Session{ + s := &Session{ config: config, logger: logger, conn: conn, @@ -6476,7 +6476,7 @@ func newSession(config *Config, conn io.ReadWriteCloser, client bool) *Session { // IsClosed does a safe check to see if we have shutdown func (s *Session) IsClosed() bool { select { - case <-s.shutdownCh: + case <-s.shutdownCh: return true default: return false @@ -6485,7 +6485,7 @@ func (s *Session) IsClosed() bool { // CloseChan returns a read-only channel which is closed as // soon as the session is closed. -func (s *Session) CloseChan() <-chan struct{} { +func (s *Session) CloseChan() <-chan struct{} { return s.shutdownCh } @@ -6511,24 +6511,24 @@ func (s *Session) OpenStream() (*Stream, error) { if s.IsClosed() { return nil, ErrSessionShutdown } - if atomic.LoadInt32(&s.remoteGoAway) == 1 { + if atomic.LoadInt32(&s.remoteGoAway) == 1 { return nil, ErrRemoteGoAway } // Block if we have too many inflight SYNs select { - case s.synCh <- struct{}{}: - case <-s.shutdownCh: + case s.synCh <- struct{}{}: + case <-s.shutdownCh: return nil, ErrSessionShutdown } GET_ID: // Get an ID, and check for stream exhaustion - id := atomic.LoadUint32(&s.nextStreamID) - if id >= math.MaxUint32-1 { + id := atomic.LoadUint32(&s.nextStreamID) + if id >= math.MaxUint32-1 { return nil, ErrStreamsExhausted } - if !atomic.CompareAndSwapUint32(&s.nextStreamID, id, id+2) { + if !atomic.CompareAndSwapUint32(&s.nextStreamID, id, id+2) { goto GET_ID } @@ -6542,9 +6542,9 @@ GET_ID: // Send the window update to create if err := stream.sendWindowUpdate(); err != nil { select { - case <-s.synCh: + case <-s.synCh: default: - s.logger.Printf("[ERR] yamux: aborted stream open without inflight syn semaphore") + s.logger.Printf("[ERR] yamux: aborted stream open without inflight syn semaphore") } return nil, err } @@ -6565,12 +6565,12 @@ func (s *Session) Accept() (net.Conn, error) { // is ready to be accepted. func (s *Session) AcceptStream() (*Stream, error) { select { - case stream := <-s.acceptCh: + case stream := <-s.acceptCh: if err := stream.sendWindowUpdate(); err != nil { return nil, err } return stream, nil - case <-s.shutdownCh: + case <-s.shutdownCh: return nil, s.shutdownErr } } @@ -6590,7 +6590,7 @@ func (s *Session) Close() error { } close(s.shutdownCh) s.conn.Close() - <-s.recvDoneCh + <-s.recvDoneCh s.streamLock.Lock() defer s.streamLock.Unlock() @@ -6619,7 +6619,7 @@ func (s *Session) GoAway() error { // goAway is used to send a goAway message func (s *Session) goAway(reason uint32) header { - atomic.SwapInt32(&s.localGoAway, 1) + atomic.SwapInt32(&s.localGoAway, 1) hdr := header(make([]byte, headerSize)) hdr.encode(typeGoAway, 0, 0, reason) return hdr @@ -6633,7 +6633,7 @@ func (s *Session) Ping() (time.Duration, error) { // Get a new ping id, mark as pending s.pingLock.Lock() id := s.pingID - s.pingID++ + s.pingID++ s.pings[id] = ch s.pingLock.Unlock() @@ -6647,13 +6647,13 @@ func (s *Session) Ping() (time.Duration, error) { // Wait for a response start := time.Now() select { - case <-ch: - case <-time.After(s.config.ConnectionWriteTimeout): + case <-ch: + case <-time.After(s.config.ConnectionWriteTimeout): s.pingLock.Lock() delete(s.pings, id) // Ignore it if a response comes later. s.pingLock.Unlock() return 0, ErrTimeout - case <-s.shutdownCh: + case <-s.shutdownCh: return 0, ErrSessionShutdown } @@ -6666,16 +6666,16 @@ func (s *Session) Ping() (time.Duration, error) { func (s *Session) keepalive() { for { select { - case <-time.After(s.config.KeepAliveInterval): + case <-time.After(s.config.KeepAliveInterval): _, err := s.Ping() if err != nil { if err != ErrSessionShutdown { - s.logger.Printf("[ERR] yamux: keepalive failed: %v", err) + s.logger.Printf("[ERR] yamux: keepalive failed: %v", err) s.exitErr(ErrKeepAliveTimeout) } return } - case <-s.shutdownCh: + case <-s.shutdownCh: return } } @@ -6688,7 +6688,7 @@ func (s *Session) waitForSend(hdr header, body io.Reader) error { } // waitForSendErr waits to send a header with optional data, checking for a -// potential shutdown. Since there's the expectation that sends can happen +// potential shutdown. Since there's the expectation that sends can happen // in a timely manner, we enforce the connection write timeout here. func (s *Session) waitForSendErr(hdr header, body io.Reader, errCh chan error) error { t := timerPool.Get() @@ -6697,7 +6697,7 @@ func (s *Session) waitForSendErr(hdr header, body io.Reader, errCh chan error) e defer func() { timer.Stop() select { - case <-timer.C: + case <-timer.C: default: } timerPool.Put(t) @@ -6705,26 +6705,26 @@ func (s *Session) waitForSendErr(hdr header, body io.Reader, errCh chan error) e ready := sendReady{Hdr: hdr, Body: body, Err: errCh} select { - case s.sendCh <- ready: - case <-s.shutdownCh: + case s.sendCh <- ready: + case <-s.shutdownCh: return ErrSessionShutdown - case <-timer.C: + case <-timer.C: return ErrConnectionWriteTimeout } select { - case err := <-errCh: + case err := <-errCh: return err - case <-s.shutdownCh: + case <-s.shutdownCh: return ErrSessionShutdown - case <-timer.C: + case <-timer.C: return ErrConnectionWriteTimeout } } -// sendNoWait does a send without waiting. Since there's the expectation that +// sendNoWait does a send without waiting. Since there's the expectation that // the send happens right here, we enforce the connection write timeout if we -// can't queue the header to be sent. +// can't queue the header to be sent. func (s *Session) sendNoWait(hdr header) error { t := timerPool.Get() timer := t.(*time.Timer) @@ -6732,18 +6732,18 @@ func (s *Session) sendNoWait(hdr header) error { defer func() { timer.Stop() select { - case <-timer.C: + case <-timer.C: default: } timerPool.Put(t) }() select { - case s.sendCh <- sendReady{Hdr: hdr}: + case s.sendCh <- sendReady{Hdr: hdr}: return nil - case <-s.shutdownCh: + case <-s.shutdownCh: return ErrSessionShutdown - case <-timer.C: + case <-timer.C: return ErrConnectionWriteTimeout } } @@ -6752,19 +6752,19 @@ func (s *Session) sendNoWait(hdr header) error { func (s *Session) send() { for { select { - case ready := <-s.sendCh: + case ready := <-s.sendCh: // Send a header if ready if ready.Hdr != nil { sent := 0 - for sent < len(ready.Hdr) { + for sent < len(ready.Hdr) { n, err := s.conn.Write(ready.Hdr[sent:]) if err != nil { - s.logger.Printf("[ERR] yamux: Failed to write header: %v", err) + s.logger.Printf("[ERR] yamux: Failed to write header: %v", err) asyncSendErr(ready.Err, err) s.exitErr(err) return } - sent += n + sent += n } } @@ -6772,7 +6772,7 @@ func (s *Session) send() { if ready.Body != nil { _, err := io.Copy(s.conn, ready.Body) if err != nil { - s.logger.Printf("[ERR] yamux: Failed to write body: %v", err) + s.logger.Printf("[ERR] yamux: Failed to write body: %v", err) asyncSendErr(ready.Err, err) s.exitErr(err) return @@ -6781,7 +6781,7 @@ func (s *Session) send() { // No error, successful send asyncSendErr(ready.Err, nil) - case <-s.shutdownCh: + case <-s.shutdownCh: return } } @@ -6811,20 +6811,20 @@ func (s *Session) recvLoop() error { for { // Read the header if _, err := io.ReadFull(s.bufRead, hdr); err != nil { - if err != io.EOF && !strings.Contains(err.Error(), "closed") && !strings.Contains(err.Error(), "reset by peer") { - s.logger.Printf("[ERR] yamux: Failed to read header: %v", err) + if err != io.EOF && !strings.Contains(err.Error(), "closed") && !strings.Contains(err.Error(), "reset by peer") { + s.logger.Printf("[ERR] yamux: Failed to read header: %v", err) } return err } // Verify the version if hdr.Version() != protoVersion { - s.logger.Printf("[ERR] yamux: Invalid protocol version: %d", hdr.Version()) + s.logger.Printf("[ERR] yamux: Invalid protocol version: %d", hdr.Version()) return ErrInvalidVersion } mt := hdr.MsgType() - if mt < typeData || mt > typeGoAway { + if mt < typeData || mt > typeGoAway { return ErrInvalidMsgType } @@ -6839,7 +6839,7 @@ func (s *Session) handleStreamMessage(hdr header) error { // Check for a new stream creation id := hdr.StreamID() flags := hdr.Flags() - if flags&flagSYN == flagSYN { + if flags&flagSYN == flagSYN { if err := s.incomingStream(id); err != nil { return err } @@ -6853,14 +6853,14 @@ func (s *Session) handleStreamMessage(hdr header) error { // If we do not have a stream, likely we sent a RST if stream == nil { // Drain any data on the wire - if hdr.MsgType() == typeData && hdr.Length() > 0 { - s.logger.Printf("[WARN] yamux: Discarding data for stream: %d", id) + if hdr.MsgType() == typeData && hdr.Length() > 0 { + s.logger.Printf("[WARN] yamux: Discarding data for stream: %d", id) if _, err := io.CopyN(ioutil.Discard, s.bufRead, int64(hdr.Length())); err != nil { - s.logger.Printf("[ERR] yamux: Failed to discard data: %v", err) + s.logger.Printf("[ERR] yamux: Failed to discard data: %v", err) return nil } } else { - s.logger.Printf("[WARN] yamux: frame for missing stream: %v", hdr) + s.logger.Printf("[WARN] yamux: frame for missing stream: %v", hdr) } return nil } @@ -6869,7 +6869,7 @@ func (s *Session) handleStreamMessage(hdr header) error { if hdr.MsgType() == typeWindowUpdate { if err := stream.incrSendWindow(hdr, flags); err != nil { if sendErr := s.sendNoWait(s.goAway(goAwayProtoErr)); sendErr != nil { - s.logger.Printf("[WARN] yamux: failed to send go away: %v", sendErr) + s.logger.Printf("[WARN] yamux: failed to send go away: %v", sendErr) } return err } @@ -6879,7 +6879,7 @@ func (s *Session) handleStreamMessage(hdr header) error { // Read the new data if err := stream.readData(hdr, flags, s.bufRead); err != nil { if sendErr := s.sendNoWait(s.goAway(goAwayProtoErr)); sendErr != nil { - s.logger.Printf("[WARN] yamux: failed to send go away: %v", sendErr) + s.logger.Printf("[WARN] yamux: failed to send go away: %v", sendErr) } return err } @@ -6892,13 +6892,13 @@ func (s *Session) handlePing(hdr header) error { pingID := hdr.Length() // Check if this is a query, respond back in a separate context so we - // don't interfere with the receiving thread blocking for the write. - if flags&flagSYN == flagSYN { + // don't interfere with the receiving thread blocking for the write. + if flags&flagSYN == flagSYN { go func() { hdr := header(make([]byte, headerSize)) hdr.encode(typePing, flagACK, 0, pingID) if err := s.sendNoWait(hdr); err != nil { - s.logger.Printf("[WARN] yamux: failed to send ping reply: %v", err) + s.logger.Printf("[WARN] yamux: failed to send ping reply: %v", err) } }() return nil @@ -6920,16 +6920,16 @@ func (s *Session) handleGoAway(hdr header) error { code := hdr.Length() switch code { case goAwayNormal: - atomic.SwapInt32(&s.remoteGoAway, 1) + atomic.SwapInt32(&s.remoteGoAway, 1) case goAwayProtoErr: - s.logger.Printf("[ERR] yamux: received protocol error go away") - return fmt.Errorf("yamux protocol error") + s.logger.Printf("[ERR] yamux: received protocol error go away") + return fmt.Errorf("yamux protocol error") case goAwayInternalErr: - s.logger.Printf("[ERR] yamux: received internal error go away") - return fmt.Errorf("remote yamux internal error") + s.logger.Printf("[ERR] yamux: received internal error go away") + return fmt.Errorf("remote yamux internal error") default: - s.logger.Printf("[ERR] yamux: received unexpected go away") - return fmt.Errorf("unexpected go away received") + s.logger.Printf("[ERR] yamux: received unexpected go away") + return fmt.Errorf("unexpected go away received") } return nil } @@ -6937,7 +6937,7 @@ func (s *Session) handleGoAway(hdr header) error { // incomingStream is used to create a new incoming stream func (s *Session) incomingStream(id uint32) error { // Reject immediately if we are doing a go away - if atomic.LoadInt32(&s.localGoAway) == 1 { + if atomic.LoadInt32(&s.localGoAway) == 1 { hdr := header(make([]byte, headerSize)) hdr.encode(typeWindowUpdate, flagRST, id, 0) return s.sendNoWait(hdr) @@ -6951,9 +6951,9 @@ func (s *Session) incomingStream(id uint32) error { // Check if stream already exists if _, ok := s.streams[id]; ok { - s.logger.Printf("[ERR] yamux: duplicate stream declared") + s.logger.Printf("[ERR] yamux: duplicate stream declared") if sendErr := s.sendNoWait(s.goAway(goAwayProtoErr)); sendErr != nil { - s.logger.Printf("[WARN] yamux: failed to send go away: %v", sendErr) + s.logger.Printf("[WARN] yamux: failed to send go away: %v", sendErr) } return ErrDuplicateStream } @@ -6961,13 +6961,13 @@ func (s *Session) incomingStream(id uint32) error { // Register the stream s.streams[id] = stream - // Check if we've exceeded the backlog + // Check if we've exceeded the backlog select { - case s.acceptCh <- stream: + case s.acceptCh <- stream: return nil default: // Backlog exceeded! RST the stream - s.logger.Printf("[WARN] yamux: backlog exceeded, forcing connection reset") + s.logger.Printf("[WARN] yamux: backlog exceeded, forcing connection reset") delete(s.streams, id) stream.sendHdr.encode(typeWindowUpdate, flagRST, id, 0) return s.sendNoWait(stream.sendHdr) @@ -6981,9 +6981,9 @@ func (s *Session) closeStream(id uint32) { s.streamLock.Lock() if _, ok := s.inflight[id]; ok { select { - case <-s.synCh: + case <-s.synCh: default: - s.logger.Printf("[ERR] yamux: SYN tracking out of sync") + s.logger.Printf("[ERR] yamux: SYN tracking out of sync") } } delete(s.streams, id) @@ -6997,12 +6997,12 @@ func (s *Session) establishStream(id uint32) { if _, ok := s.inflight[id]; ok { delete(s.inflight, id) } else { - s.logger.Printf("[ERR] yamux: established stream without inflight SYN (no tracking entry)") + s.logger.Printf("[ERR] yamux: established stream without inflight SYN (no tracking entry)") } select { - case <-s.synCh: + case <-s.synCh: default: - s.logger.Printf("[ERR] yamux: established stream without inflight SYN (didn't have semaphore)") + s.logger.Printf("[ERR] yamux: established stream without inflight SYN (didn't have semaphore)") } s.streamLock.Unlock() } @@ -7012,23 +7012,23 @@ session_test.go - github.com/hashicorp/yamux package yamux import ( - "bytes" - "fmt" - "io" - "io/ioutil" - "log" - "reflect" - "runtime" - "strings" - "sync" - "testing" - "time" + "bytes" + "fmt" + "io" + "io/ioutil" + "log" + "reflect" + "runtime" + "strings" + "sync" + "testing" + "time" ) type logCapture struct{ bytes.Buffer } func (l *logCapture) logs() []string { - return strings.Split(strings.TrimSpace(l.String()), "\n") + return strings.Split(strings.TrimSpace(l.String()), "\n") } func (l *logCapture) match(expect []string) bool { @@ -7037,7 +7037,7 @@ func (l *logCapture) match(expect []string) bool { func captureLogs(s *Session) *logCapture { buf := new(logCapture) - s.logger = log.New(buf, "", 0) + s.logger = log.New(buf, "", 0) return buf } @@ -7065,8 +7065,8 @@ func (p *pipeConn) Close() error { func testConn() (io.ReadWriteCloser, io.ReadWriteCloser) { read1, write1 := io.Pipe() read2, write2 := io.Pipe() - conn1 := &pipeConn{reader: read1, writer: write2} - conn2 := &pipeConn{reader: read2, writer: write1} + conn1 := &pipeConn{reader: read1, writer: write2} + conn2 := &pipeConn{reader: read2, writer: write1} return conn1, conn2 } @@ -7102,18 +7102,18 @@ func TestPing(t *testing.T) { rtt, err := client.Ping() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if rtt == 0 { - t.Fatalf("bad: %v", rtt) + t.Fatalf("bad: %v", rtt) } rtt, err = server.Ping() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if rtt == 0 { - t.Fatalf("bad: %v", rtt) + t.Fatalf("bad: %v", rtt) } } @@ -7129,16 +7129,16 @@ func TestPing_Timeout(t *testing.T) { errCh := make(chan error, 1) go func() { _, err := server.Ping() // Ping via the server session - errCh <- err + errCh <- err }() select { - case err := <-errCh: + case err := <-errCh: if err != ErrTimeout { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - case <-time.After(client.config.ConnectionWriteTimeout * 2): - t.Fatalf("failed to timeout within expected %v", client.config.ConnectionWriteTimeout) + case <-time.After(client.config.ConnectionWriteTimeout * 2): + t.Fatalf("failed to timeout within expected %v", client.config.ConnectionWriteTimeout) } // Verify that we recover, even if we gave up @@ -7146,16 +7146,16 @@ func TestPing_Timeout(t *testing.T) { go func() { _, err := server.Ping() // Ping via the server session - errCh <- err + errCh <- err }() select { - case err := <-errCh: + case err := <-errCh: if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - case <-time.After(client.config.ConnectionWriteTimeout): - t.Fatalf("timeout") + case <-time.After(client.config.ConnectionWriteTimeout): + t.Fatalf("timeout") } } @@ -7167,7 +7167,7 @@ func TestCloseBeforeAck(t *testing.T) { defer client.Close() defer server.Close() - for i := 0; i < 8; i++ { + for i := 0; i < 8; i++ { s, err := client.OpenStream() if err != nil { t.Fatal(err) @@ -7175,7 +7175,7 @@ func TestCloseBeforeAck(t *testing.T) { s.Close() } - for i := 0; i < 8; i++ { + for i := 0; i < 8; i++ { s, err := server.AcceptStream() if err != nil { t.Fatal(err) @@ -7194,9 +7194,9 @@ func TestCloseBeforeAck(t *testing.T) { }() select { - case <-done: - case <-time.After(time.Second * 5): - t.Fatal("timed out trying to open stream") + case <-done: + case <-time.After(time.Second * 5): + t.Fatal("timed out trying to open stream") } } @@ -7206,26 +7206,26 @@ func TestAccept(t *testing.T) { defer server.Close() if client.NumStreams() != 0 { - t.Fatalf("bad") + t.Fatalf("bad") } if server.NumStreams() != 0 { - t.Fatalf("bad") + t.Fatalf("bad") } - wg := &sync.WaitGroup{} + wg := &sync.WaitGroup{} wg.Add(4) go func() { defer wg.Done() stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if id := stream.StreamID(); id != 1 { - t.Fatalf("bad: %v", id) + t.Fatalf("bad: %v", id) } if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -7233,13 +7233,13 @@ func TestAccept(t *testing.T) { defer wg.Done() stream, err := client.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if id := stream.StreamID(); id != 2 { - t.Fatalf("bad: %v", id) + t.Fatalf("bad: %v", id) } if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -7247,13 +7247,13 @@ func TestAccept(t *testing.T) { defer wg.Done() stream, err := server.OpenStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if id := stream.StreamID(); id != 2 { - t.Fatalf("bad: %v", id) + t.Fatalf("bad: %v", id) } if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -7261,13 +7261,13 @@ func TestAccept(t *testing.T) { defer wg.Done() stream, err := client.OpenStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if id := stream.StreamID(); id != 1 { - t.Fatalf("bad: %v", id) + t.Fatalf("bad: %v", id) } if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -7278,9 +7278,9 @@ func TestAccept(t *testing.T) { }() select { - case <-doneCh: - case <-time.After(time.Second): - panic("timeout") + case <-doneCh: + case <-time.After(time.Second): + panic("timeout") } } @@ -7292,13 +7292,13 @@ func TestClose_closeTimeout(t *testing.T) { defer server.Close() if client.NumStreams() != 0 { - t.Fatalf("bad") + t.Fatalf("bad") } if server.NumStreams() != 0 { - t.Fatalf("bad") + t.Fatalf("bad") } - wg := &sync.WaitGroup{} + wg := &sync.WaitGroup{} wg.Add(2) // Open a stream on the client but only close it on the server. @@ -7310,7 +7310,7 @@ func TestClose_closeTimeout(t *testing.T) { var err error clientStream, err = client.OpenStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -7318,10 +7318,10 @@ func TestClose_closeTimeout(t *testing.T) { defer wg.Done() stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -7332,25 +7332,25 @@ func TestClose_closeTimeout(t *testing.T) { }() select { - case <-doneCh: - case <-time.After(time.Second): - panic("timeout") + case <-doneCh: + case <-time.After(time.Second): + panic("timeout") } // We should have zero streams after our timeout period time.Sleep(100 * time.Millisecond) - if v := server.NumStreams(); v > 0 { - t.Fatalf("should have zero streams: %d", v) + if v := server.NumStreams(); v > 0 { + t.Fatalf("should have zero streams: %d", v) } - if v := client.NumStreams(); v > 0 { - t.Fatalf("should have zero streams: %d", v) + if v := client.NumStreams(); v > 0 { + t.Fatalf("should have zero streams: %d", v) } - if _, err := clientStream.Write([]byte("hello")); err == nil { - t.Fatal("should error on write") - } else if err.Error() != "connection reset" { - t.Fatalf("expected connection reset, got %q", err) + if _, err := clientStream.Write([]byte("hello")); err == nil { + t.Fatal("should error on write") + } else if err.Error() != "connection reset" { + t.Fatalf("expected connection reset, got %q", err) } } @@ -7359,13 +7359,13 @@ func TestNonNilInterface(t *testing.T) { server.Close() conn, err := server.Accept() - if err != nil && conn != nil { - t.Error("bad: accept should return a connection of nil value") + if err != nil && conn != nil { + t.Error("bad: accept should return a connection of nil value") } conn, err = server.Open() - if err != nil && conn != nil { - t.Error("bad: open should return a connection of nil value") + if err != nil && conn != nil { + t.Error("bad: open should return a connection of nil value") } } @@ -7374,36 +7374,36 @@ func TestSendData_Small(t *testing.T) { defer client.Close() defer server.Close() - wg := &sync.WaitGroup{} + wg := &sync.WaitGroup{} wg.Add(2) go func() { defer wg.Done() stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if server.NumStreams() != 1 { - t.Fatalf("bad") + t.Fatalf("bad") } buf := make([]byte, 4) - for i := 0; i < 1000; i++ { + for i := 0; i < 1000; i++ { n, err := stream.Read(buf) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 4 { - t.Fatalf("short read: %d", n) + t.Fatalf("short read: %d", n) } - if string(buf) != "test" { - t.Fatalf("bad: %s", buf) + if string(buf) != "test" { + t.Fatalf("bad: %s", buf) } } if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -7411,25 +7411,25 @@ func TestSendData_Small(t *testing.T) { defer wg.Done() stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if client.NumStreams() != 1 { - t.Fatalf("bad") + t.Fatalf("bad") } - for i := 0; i < 1000; i++ { - n, err := stream.Write([]byte("test")) + for i := 0; i < 1000; i++ { + n, err := stream.Write([]byte("test")) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 4 { - t.Fatalf("short write %d", n) + t.Fatalf("short write %d", n) } } if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -7439,16 +7439,16 @@ func TestSendData_Small(t *testing.T) { close(doneCh) }() select { - case <-doneCh: - case <-time.After(time.Second): - panic("timeout") + case <-doneCh: + case <-time.After(time.Second): + panic("timeout") } if client.NumStreams() != 0 { - t.Fatalf("bad") + t.Fatalf("bad") } if server.NumStreams() != 0 { - t.Fatalf("bad") + t.Fatalf("bad") } } @@ -7467,57 +7467,57 @@ func TestSendData_Large(t *testing.T) { data[idx] = byte(idx % 256) } - wg := &sync.WaitGroup{} + wg := &sync.WaitGroup{} wg.Add(2) go func() { defer wg.Done() stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } var sz int buf := make([]byte, recvSize) - for i := 0; i < sendSize/recvSize; i++ { + for i := 0; i < sendSize/recvSize; i++ { n, err := stream.Read(buf) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != recvSize { - t.Fatalf("short read: %d", n) + t.Fatalf("short read: %d", n) } - sz += n + sz += n for idx := range buf { if buf[idx] != byte(idx%256) { - t.Fatalf("bad: %v %v %v", i, idx, buf[idx]) + t.Fatalf("bad: %v %v %v", i, idx, buf[idx]) } } } if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - t.Logf("cap=%d, n=%d\n", stream.recvBuf.Cap(), sz) + t.Logf("cap=%d, n=%d\n", stream.recvBuf.Cap(), sz) }() go func() { defer wg.Done() stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } n, err := stream.Write(data) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != len(data) { - t.Fatalf("short write %d", n) + t.Fatalf("short write %d", n) } if err := stream.Close(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -7527,9 +7527,9 @@ func TestSendData_Large(t *testing.T) { close(doneCh) }() select { - case <-doneCh: - case <-time.After(5 * time.Second): - panic("timeout") + case <-doneCh: + case <-time.After(5 * time.Second): + panic("timeout") } } @@ -7539,12 +7539,12 @@ func TestGoAway(t *testing.T) { defer server.Close() if err := server.GoAway(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } _, err := client.Open() if err != ErrRemoteGoAway { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } } @@ -7553,13 +7553,13 @@ func TestManyStreams(t *testing.T) { defer client.Close() defer server.Close() - wg := &sync.WaitGroup{} + wg := &sync.WaitGroup{} acceptor := func(i int) { defer wg.Done() stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() @@ -7570,10 +7570,10 @@ func TestManyStreams(t *testing.T) { return } if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n == 0 { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } } } @@ -7581,23 +7581,23 @@ func TestManyStreams(t *testing.T) { defer wg.Done() stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() - msg := fmt.Sprintf("%08d", i) - for i := 0; i < 1000; i++ { + msg := fmt.Sprintf("%08d", i) + for i := 0; i < 1000; i++ { n, err := stream.Write([]byte(msg)) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != len(msg) { - t.Fatalf("short write %d", n) + t.Fatalf("short write %d", n) } } } - for i := 0; i < 50; i++ { + for i := 0; i < 50; i++ { wg.Add(2) go acceptor(i) go sender(i) @@ -7611,46 +7611,46 @@ func TestManyStreams_PingPong(t *testing.T) { defer client.Close() defer server.Close() - wg := &sync.WaitGroup{} + wg := &sync.WaitGroup{} - ping := []byte("ping") - pong := []byte("pong") + ping := []byte("ping") + pong := []byte("pong") acceptor := func(i int) { defer wg.Done() stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() buf := make([]byte, 4) for { - // Read the 'ping' + // Read the 'ping' n, err := stream.Read(buf) if err == io.EOF { return } if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 4 { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if !bytes.Equal(buf, ping) { - t.Fatalf("bad: %s", buf) + t.Fatalf("bad: %s", buf) } // Shrink the internal buffer! stream.Shrink() - // Write out the 'pong' + // Write out the 'pong' n, err = stream.Write(pong) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 4 { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } } } @@ -7658,31 +7658,31 @@ func TestManyStreams_PingPong(t *testing.T) { defer wg.Done() stream, err := client.OpenStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() buf := make([]byte, 4) - for i := 0; i < 1000; i++ { - // Send the 'ping' + for i := 0; i < 1000; i++ { + // Send the 'ping' n, err := stream.Write(ping) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 4 { - t.Fatalf("short write %d", n) + t.Fatalf("short write %d", n) } - // Read the 'pong' + // Read the 'pong' n, err = stream.Read(buf) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 4 { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if !bytes.Equal(buf, pong) { - t.Fatalf("bad: %s", buf) + t.Fatalf("bad: %s", buf) } // Shrink the buffer @@ -7690,7 +7690,7 @@ func TestManyStreams_PingPong(t *testing.T) { } } - for i := 0; i < 50; i++ { + for i := 0; i < 50; i++ { wg.Add(2) go acceptor(i) go sender(i) @@ -7706,49 +7706,49 @@ func TestHalfClose(t *testing.T) { stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - if _, err = stream.Write([]byte("a")); err != nil { - t.Fatalf("err: %v", err) + if _, err = stream.Write([]byte("a")); err != nil { + t.Fatalf("err: %v", err) } stream2, err := server.Accept() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } stream2.Close() // Half close buf := make([]byte, 4) n, err := stream2.Read(buf) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 1 { - t.Fatalf("bad: %v", n) + t.Fatalf("bad: %v", n) } // Send more - if _, err = stream.Write([]byte("bcd")); err != nil { - t.Fatalf("err: %v", err) + if _, err = stream.Write([]byte("bcd")); err != nil { + t.Fatalf("err: %v", err) } stream.Close() // Read after close n, err = stream2.Read(buf) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 3 { - t.Fatalf("bad: %v", n) + t.Fatalf("bad: %v", n) } // EOF after close n, err = stream2.Read(buf) if err != io.EOF { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 0 { - t.Fatalf("bad: %v", n) + t.Fatalf("bad: %v", n) } } @@ -7759,23 +7759,23 @@ func TestReadDeadline(t *testing.T) { stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() stream2, err := server.Accept() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream2.Close() if err := stream.SetReadDeadline(time.Now().Add(5 * time.Millisecond)); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } buf := make([]byte, 4) if _, err := stream.Read(buf); err != ErrTimeout { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } } @@ -7786,13 +7786,13 @@ func TestReadDeadline_BlockedRead(t *testing.T) { stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() stream2, err := server.Accept() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream2.Close() @@ -7801,7 +7801,7 @@ func TestReadDeadline_BlockedRead(t *testing.T) { go func() { buf := make([]byte, 4) _, err := stream.Read(buf) - errCh <- err + errCh <- err close(errCh) }() @@ -7810,15 +7810,15 @@ func TestReadDeadline_BlockedRead(t *testing.T) { // Update the read deadline if err := stream.SetReadDeadline(time.Now().Add(5 * time.Millisecond)); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } select { - case <-time.After(100 * time.Millisecond): - t.Fatal("expected read timeout") - case err := <-errCh: + case <-time.After(100 * time.Millisecond): + t.Fatal("expected read timeout") + case err := <-errCh: if err != ErrTimeout { - t.Fatalf("expected ErrTimeout; got %v", err) + t.Fatalf("expected ErrTimeout; got %v", err) } } } @@ -7830,30 +7830,30 @@ func TestWriteDeadline(t *testing.T) { stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() stream2, err := server.Accept() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream2.Close() if err := stream.SetWriteDeadline(time.Now().Add(50 * time.Millisecond)); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } buf := make([]byte, 512) - for i := 0; i < int(initialStreamWindow); i++ { + for i := 0; i < int(initialStreamWindow); i++ { _, err := stream.Write(buf) - if err != nil && err == ErrTimeout { + if err != nil && err == ErrTimeout { return } else if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } } - t.Fatalf("Expected timeout") + t.Fatalf("Expected timeout") } func TestWriteDeadline_BlockedWrite(t *testing.T) { @@ -7863,13 +7863,13 @@ func TestWriteDeadline_BlockedWrite(t *testing.T) { stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() stream2, err := server.Accept() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream2.Close() @@ -7877,13 +7877,13 @@ func TestWriteDeadline_BlockedWrite(t *testing.T) { errCh := make(chan error, 1) go func() { buf := make([]byte, 512) - for i := 0; i < int(initialStreamWindow); i++ { + for i := 0; i < int(initialStreamWindow); i++ { _, err := stream.Write(buf) if err == nil { continue } - errCh <- err + errCh <- err close(errCh) return } @@ -7896,15 +7896,15 @@ func TestWriteDeadline_BlockedWrite(t *testing.T) { // Update the write deadline if err := stream.SetWriteDeadline(time.Now().Add(5 * time.Millisecond)); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } select { - case <-time.After(1 * time.Second): - t.Fatal("expected write timeout") - case err := <-errCh: + case <-time.After(1 * time.Second): + t.Fatal("expected write timeout") + case err := <-errCh: if err != ErrTimeout { - t.Fatalf("expected ErrTimeout; got %v", err) + t.Fatalf("expected ErrTimeout; got %v", err) } } } @@ -7916,15 +7916,15 @@ func TestBacklogExceeded(t *testing.T) { // Fill the backlog max := client.config.AcceptBacklog - for i := 0; i < max; i++ { + for i := 0; i < max; i++ { stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() - if _, err := stream.Write([]byte("foo")); err != nil { - t.Fatalf("err: %v", err) + if _, err := stream.Write([]byte("foo")); err != nil { + t.Fatalf("err: %v", err) } } @@ -7932,7 +7932,7 @@ func TestBacklogExceeded(t *testing.T) { errCh := make(chan error, 1) go func() { _, err := client.Open() - errCh <- err + errCh <- err }() // Shutdown the server @@ -7942,12 +7942,12 @@ func TestBacklogExceeded(t *testing.T) { }() select { - case err := <-errCh: + case err := <-errCh: if err == nil { - t.Fatalf("open should fail") + t.Fatalf("open should fail") } - case <-time.After(time.Second): - t.Fatalf("timeout") + case <-time.After(time.Second): + t.Fatalf("timeout") } } @@ -7962,13 +7962,13 @@ func TestKeepAlive(t *testing.T) { client.pingLock.Lock() defer client.pingLock.Unlock() if client.pingID == 0 { - t.Fatalf("should ping") + t.Fatalf("should ping") } server.pingLock.Lock() defer server.pingLock.Unlock() if server.pingID == 0 { - t.Fatalf("should ping") + t.Fatalf("should ping") } } @@ -7976,21 +7976,21 @@ func TestKeepAlive_Timeout(t *testing.T) { conn1, conn2 := testConn() clientConf := testConf() - clientConf.ConnectionWriteTimeout = time.Hour // We're testing keep alives, not connection writes - clientConf.EnableKeepAlive = false // Just test one direction, so it's deterministic who hangs up on whom + clientConf.ConnectionWriteTimeout = time.Hour // We're testing keep alives, not connection writes + clientConf.EnableKeepAlive = false // Just test one direction, so it's deterministic who hangs up on whom client, _ := Client(conn1, clientConf) defer client.Close() server, _ := Server(conn2, testConf()) defer server.Close() - _ = captureLogs(client) // Client logs aren't part of the test + _ = captureLogs(client) // Client logs aren't part of the test serverLogs := captureLogs(server) errCh := make(chan error, 1) go func() { _, err := server.Accept() // Wait until server closes - errCh <- err + errCh <- err }() // Prevent the client from responding @@ -7998,20 +7998,20 @@ func TestKeepAlive_Timeout(t *testing.T) { clientConn.writeBlocker.Lock() select { - case err := <-errCh: + case err := <-errCh: if err != ErrKeepAliveTimeout { - t.Fatalf("unexpected error: %v", err) + t.Fatalf("unexpected error: %v", err) } - case <-time.After(1 * time.Second): - t.Fatalf("timeout waiting for timeout") + case <-time.After(1 * time.Second): + t.Fatalf("timeout waiting for timeout") } if !server.IsClosed() { - t.Fatalf("server should have closed") + t.Fatalf("server should have closed") } - if !serverLogs.match([]string{"[ERR] yamux: keepalive failed: i/o deadline reached"}) { - t.Fatalf("server log incorect: %v", serverLogs.logs()) + if !serverLogs.match([]string{"[ERR] yamux: keepalive failed: i/o deadline reached"}) { + t.Fatalf("server log incorect: %v", serverLogs.logs()) } } @@ -8025,13 +8025,13 @@ func TestLargeWindow(t *testing.T) { stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() stream2, err := server.Accept() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream2.Close() @@ -8039,10 +8039,10 @@ func TestLargeWindow(t *testing.T) { buf := make([]byte, conf.MaxStreamWindowSize) n, err := stream.Write(buf) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != len(buf) { - t.Fatalf("short write: %d", n) + t.Fatalf("short write: %d", n) } } @@ -8061,57 +8061,57 @@ func TestSendData_VeryLarge(t *testing.T) { var n int64 = 1 * 1024 * 1024 * 1024 var workers int = 16 - wg := &sync.WaitGroup{} + wg := &sync.WaitGroup{} wg.Add(workers * 2) - for i := 0; i < workers; i++ { + for i := 0; i < workers; i++ { go func() { defer wg.Done() stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() buf := make([]byte, 4) _, err = stream.Read(buf) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if !bytes.Equal(buf, []byte{0, 1, 2, 3}) { - t.Fatalf("bad header") + t.Fatalf("bad header") } recv, err := io.Copy(ioutil.Discard, stream) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if recv != n { - t.Fatalf("bad: %v", recv) + t.Fatalf("bad: %v", recv) } }() } - for i := 0; i < workers; i++ { + for i := 0; i < workers; i++ { go func() { defer wg.Done() stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() _, err = stream.Write([]byte{0, 1, 2, 3}) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } - unlimited := &UnlimitedReader{} + unlimited := &UnlimitedReader{} sent, err := io.Copy(stream, io.LimitReader(unlimited, n)) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if sent != n { - t.Fatalf("bad: %v", sent) + t.Fatalf("bad: %v", sent) } }() } @@ -8122,9 +8122,9 @@ func TestSendData_VeryLarge(t *testing.T) { close(doneCh) }() select { - case <-doneCh: - case <-time.After(20 * time.Second): - panic("timeout") + case <-doneCh: + case <-time.After(20 * time.Second): + panic("timeout") } } @@ -8135,25 +8135,25 @@ func TestBacklogExceeded_Accept(t *testing.T) { max := 5 * client.config.AcceptBacklog go func() { - for i := 0; i < max; i++ { + for i := 0; i < max; i++ { stream, err := server.Accept() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() } }() // Fill the backlog - for i := 0; i < max; i++ { + for i := 0; i < max; i++ { stream, err := client.Open() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() - if _, err := stream.Write([]byte("foo")); err != nil { - t.Fatalf("err: %v", err) + if _, err := stream.Write([]byte("foo")); err != nil { + t.Fatalf("err: %v", err) } } } @@ -8175,28 +8175,28 @@ func TestSession_WindowUpdateWriteDuringRead(t *testing.T) { stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() n, err := stream.Write(make([]byte, flood)) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if int64(n) != flood { - t.Fatalf("short write: %d", n) + t.Fatalf("short write: %d", n) } }() // The client will open a stream, block outbound writes, and then // listen to the flood from the server, which should time out since - // it won't be able to send the window update. + // it won't be able to send the window update. go func() { defer wg.Done() stream, err := client.OpenStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() @@ -8205,7 +8205,7 @@ func TestSession_WindowUpdateWriteDuringRead(t *testing.T) { _, err = stream.Read(make([]byte, flood)) if err != ErrConnectionWriteTimeout { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -8231,38 +8231,38 @@ func TestSession_PartialReadWindowUpdate(t *testing.T) { var err error wr, err = server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer wr.Close() if wr.sendWindow != client.config.MaxStreamWindowSize { - t.Fatalf("sendWindow: exp=%d, got=%d", client.config.MaxStreamWindowSize, wr.sendWindow) + t.Fatalf("sendWindow: exp=%d, got=%d", client.config.MaxStreamWindowSize, wr.sendWindow) } n, err := wr.Write(make([]byte, flood)) if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if int64(n) != flood { - t.Fatalf("short write: %d", n) + t.Fatalf("short write: %d", n) } if wr.sendWindow != 0 { - t.Fatalf("sendWindow: exp=%d, got=%d", 0, wr.sendWindow) + t.Fatalf("sendWindow: exp=%d, got=%d", 0, wr.sendWindow) } }() stream, err := client.OpenStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() wg.Wait() - _, err = stream.Read(make([]byte, flood/2+1)) + _, err = stream.Read(make([]byte, flood/2+1)) - if exp := uint32(flood/2 + 1); wr.sendWindow != exp { - t.Errorf("sendWindow: exp=%d, got=%d", exp, wr.sendWindow) + if exp := uint32(flood/2 + 1); wr.sendWindow != exp { + t.Errorf("sendWindow: exp=%d, got=%d", exp, wr.sendWindow) } } @@ -8279,19 +8279,19 @@ func TestSession_sendNoWait_Timeout(t *testing.T) { stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() }() - // The client will open the stream and then block outbound writes, we'll + // The client will open the stream and then block outbound writes, we'll // probe sendNoWait once it gets into that state. go func() { defer wg.Done() stream, err := client.OpenStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() @@ -8307,7 +8307,7 @@ func TestSession_sendNoWait_Timeout(t *testing.T) { } else if err == ErrConnectionWriteTimeout { break } else { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } } }() @@ -8336,7 +8336,7 @@ func TestSession_PingOfDeath(t *testing.T) { stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() @@ -8350,7 +8350,7 @@ func TestSession_PingOfDeath(t *testing.T) { } else if err == ErrConnectionWriteTimeout { break } else { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } } @@ -8358,14 +8358,14 @@ func TestSession_PingOfDeath(t *testing.T) { }() // The client will open a stream and then send the server a ping once it - // can no longer write. This makes sure the server doesn't deadlock reads + // can no longer write. This makes sure the server doesn't deadlock reads // while trying to reply to the ping with no ability to write. go func() { defer wg.Done() stream, err := client.OpenStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() @@ -8379,7 +8379,7 @@ func TestSession_PingOfDeath(t *testing.T) { time.Sleep(2 * server.config.ConnectionWriteTimeout) conn.writeBlocker.Unlock() if _, err = client.Ping(); err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } }() @@ -8399,19 +8399,19 @@ func TestSession_ConnectionWriteTimeout(t *testing.T) { stream, err := server.AcceptStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() }() - // The client will open the stream and then block outbound writes, we'll + // The client will open the stream and then block outbound writes, we'll // tee up a write and make sure it eventually times out. go func() { defer wg.Done() stream, err := client.OpenStream() if err != nil { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } defer stream.Close() @@ -8419,14 +8419,14 @@ func TestSession_ConnectionWriteTimeout(t *testing.T) { conn.writeBlocker.Lock() // Since the write goroutine is blocked then this will return a - // timeout since it can't get feedback about whether the write + // timeout since it can't get feedback about whether the write // worked. - n, err := stream.Write([]byte("hello")) + n, err := stream.Write([]byte("hello")) if err != ErrConnectionWriteTimeout { - t.Fatalf("err: %v", err) + t.Fatalf("err: %v", err) } if n != 0 { - t.Fatalf("lied about writes: %d", n) + t.Fatalf("lied about writes: %d", n) } }() @@ -8499,7 +8499,7 @@ to the message type. The following flags are supported: ## StreamID Field The StreamID field is used to identify the logical stream the frame -is addressing. The client side should use odd ID's, and the server even. +is addressing. The client side should use odd ID's, and the server even. This prevents any collisions. Additionally, the 0 ID is reserved to represent the session. @@ -8581,11 +8581,11 @@ stream.go - github.com/hashicorp/yamux package yamux import ( - "bytes" - "io" - "sync" - "sync/atomic" - "time" + "bytes" + "io" + "sync" + "sync/atomic" + "time" ) type streamState int @@ -8638,7 +8638,7 @@ type Stream struct { // newStream is used to construct a new stream within // a given session for an ID func newStream(session *Session, id uint32, state streamState) *Stream { - s := &Stream{ + s := &Stream{ id: id, session: session, state: state, @@ -8706,7 +8706,7 @@ START: return n, err WAIT: - var timeout <-chan time.Time + var timeout <-chan time.Time var timer *time.Timer readDeadline := s.readDeadline.Load().(time.Time) if !readDeadline.IsZero() { @@ -8715,12 +8715,12 @@ WAIT: timeout = timer.C } select { - case <-s.recvNotifyCh: + case <-s.recvNotifyCh: if timer != nil { timer.Stop() } goto START - case <-timeout: + case <-timeout: return 0, ErrTimeout } } @@ -8730,9 +8730,9 @@ func (s *Stream) Write(b []byte) (n int, err error) { s.sendLock.Lock() defer s.sendLock.Unlock() total := 0 - for total < len(b) { + for total < len(b) { n, err := s.write(b[total:]) - total += n + total += n if err != nil { return total, err } @@ -8761,7 +8761,7 @@ START: s.stateLock.Unlock() // If there is no data available, block - window := atomic.LoadUint32(&s.sendWindow) + window := atomic.LoadUint32(&s.sendWindow) if window == 0 { goto WAIT } @@ -8780,22 +8780,22 @@ START: } // Reduce our send window - atomic.AddUint32(&s.sendWindow, ^uint32(max-1)) + atomic.AddUint32(&s.sendWindow, ^uint32(max-1)) // Unlock return int(max), err WAIT: - var timeout <-chan time.Time + var timeout <-chan time.Time writeDeadline := s.writeDeadline.Load().(time.Time) if !writeDeadline.IsZero() { delay := writeDeadline.Sub(time.Now()) timeout = time.After(delay) } select { - case <-s.sendNotifyCh: + case <-s.sendNotifyCh: goto START - case <-timeout: + case <-timeout: return 0, ErrTimeout } return 0, nil @@ -8837,13 +8837,13 @@ func (s *Stream) sendWindowUpdate() error { flags := s.sendFlags() // Check if we can omit the update - if delta < (max/2) && flags == 0 { + if delta < (max/2) && flags == 0 { s.recvLock.Unlock() return nil } // Update our window - s.recvWindow += delta + s.recvWindow += delta s.recvLock.Unlock() // Send the header @@ -8891,12 +8891,12 @@ func (s *Stream) Close() error { case streamClosed: case streamReset: default: - panic("unhandled state") + panic("unhandled state") } s.stateLock.Unlock() return nil SEND_CLOSE: - // This shouldn't happen (the more realistic scenario to cancel the + // This shouldn't happen (the more realistic scenario to cancel the // timer is via processFlags) but just in case this ever happens, we // cancel the timer to prevent dangling timers. if s.closeTimer != nil { @@ -8905,14 +8905,14 @@ SEND_CLOSE: } // If we have a StreamCloseTimeout set we start the timeout timer. - // We do this only if we're not already closing the stream since that + // We do this only if we're not already closing the stream since that // means this was a graceful close. // // This prevents memory leaks if one side (this side) closes and the // remote side poorly behaves and never responds with a FIN to complete // the close. After the specified timeout, we clean our resources up no // matter what. - if !closeStream && s.session.config.StreamCloseTimeout > 0 { + if !closeStream && s.session.config.StreamCloseTimeout > 0 { s.closeTimer = time.AfterFunc( s.session.config.StreamCloseTimeout, s.closeTimeout) } @@ -8969,13 +8969,13 @@ func (s *Stream) processFlags(flags uint16) error { } }() - if flags&flagACK == flagACK { + if flags&flagACK == flagACK { if s.state == streamSYNSent { s.state = streamEstablished } s.session.establishStream(s.id) } - if flags&flagFIN == flagFIN { + if flags&flagFIN == flagFIN { switch s.state { case streamSYNSent: fallthrough @@ -8989,11 +8989,11 @@ func (s *Stream) processFlags(flags uint16) error { closeStream = true s.notifyWaiting() default: - s.session.logger.Printf("[ERR] yamux: unexpected FIN flag in state %d", s.state) + s.session.logger.Printf("[ERR] yamux: unexpected FIN flag in state %d", s.state) return ErrUnexpectedFlag } } - if flags&flagRST == flagRST { + if flags&flagRST == flagRST { s.state = streamReset closeStream = true s.notifyWaiting() @@ -9014,7 +9014,7 @@ func (s *Stream) incrSendWindow(hdr header, flags uint16) error { } // Increase window, unblock a sender - atomic.AddUint32(&s.sendWindow, hdr.Length()) + atomic.AddUint32(&s.sendWindow, hdr.Length()) asyncNotify(s.sendNotifyCh) return nil } @@ -9032,13 +9032,13 @@ func (s *Stream) readData(hdr header, flags uint16, conn io.Reader) error { } // Wrap in a limited reader - conn = &io.LimitedReader{R: conn, N: int64(length)} + conn = &io.LimitedReader{R: conn, N: int64(length)} // Copy into buffer s.recvLock.Lock() - if length > s.recvWindow { - s.session.logger.Printf("[ERR] yamux: receive window exceeded (stream: %d, remain: %d, recv: %d)", s.id, s.recvWindow, length) + if length > s.recvWindow { + s.session.logger.Printf("[ERR] yamux: receive window exceeded (stream: %d, remain: %d, recv: %d)", s.id, s.recvWindow, length) return ErrRecvWindowExceeded } @@ -9048,7 +9048,7 @@ func (s *Stream) readData(hdr header, flags uint16, conn io.Reader) error { s.recvBuf = bytes.NewBuffer(make([]byte, 0, length)) } if _, err := io.Copy(s.recvBuf, conn); err != nil { - s.session.logger.Printf("[ERR] yamux: Failed to read stream data: %v", err) + s.session.logger.Printf("[ERR] yamux: Failed to read stream data: %v", err) s.recvLock.Unlock() return err } @@ -9092,7 +9092,7 @@ func (s *Stream) SetWriteDeadline(t time.Time) error { // the idle memory utilization. func (s *Stream) Shrink() { s.recvLock.Lock() - if s.recvBuf != nil && s.recvBuf.Len() == 0 { + if s.recvBuf != nil && s.recvBuf.Len() == 0 { s.recvBuf = nil } s.recvLock.Unlock() @@ -9103,12 +9103,12 @@ util.go - github.com/hashicorp/yamux package yamux import ( - "sync" - "time" + "sync" + "time" ) var ( - timerPool = &sync.Pool{ + timerPool = &sync.Pool{ New: func() interface{} { timer := time.NewTimer(time.Hour * 1e6) timer.Stop() @@ -9123,7 +9123,7 @@ func asyncSendErr(ch chan error, err error) { return } select { - case ch <- err: + case ch <- err: default: } } @@ -9131,14 +9131,14 @@ func asyncSendErr(ch chan error, err error) { // asyncNotify is used to signal a waiting goroutine func asyncNotify(ch chan struct{}) { select { - case ch <- struct{}{}: + case ch <- struct{}{}: default: } } // min computes the minimum of two values func min(a, b uint32) uint32 { - if a < b { + if a < b { return a } return b @@ -9149,24 +9149,24 @@ util_test.go - github.com/hashicorp/yamux package yamux import ( - "testing" + "testing" ) func TestAsyncSendErr(t *testing.T) { ch := make(chan error) asyncSendErr(ch, ErrTimeout) select { - case <-ch: - t.Fatalf("should not get") + case <-ch: + t.Fatalf("should not get") default: } ch = make(chan error, 1) asyncSendErr(ch, ErrTimeout) select { - case <-ch: + case <-ch: default: - t.Fatalf("should get") + t.Fatalf("should get") } } @@ -9174,26 +9174,26 @@ func TestAsyncNotify(t *testing.T) { ch := make(chan struct{}) asyncNotify(ch) select { - case <-ch: - t.Fatalf("should not get") + case <-ch: + t.Fatalf("should not get") default: } ch = make(chan struct{}, 1) asyncNotify(ch) select { - case <-ch: + case <-ch: default: - t.Fatalf("should get") + t.Fatalf("should get") } } func TestMin(t *testing.T) { if min(1, 2) != 1 { - t.Fatalf("bad") + t.Fatalf("bad") } if min(2, 1) != 1 { - t.Fatalf("bad") + t.Fatalf("bad") } } @@ -9216,7 +9216,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -9232,7 +9232,7 @@ LICENSE - github.com/kelseyhightower/envconfig Copyright (c) 2013 Kelsey Hightower Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in +this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do @@ -9241,7 +9241,7 @@ so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -9251,14 +9251,14 @@ SOFTWARE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE.md - github.com/lib/pq -Copyright (c) 2011-2013, 'pq' Contributors +Copyright (c) 2011-2013, 'pq' Contributors Portions Copyright (C) 2011 Blake Mizerany -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE - github.com/libgit2/git2go/v31 @@ -9267,7 +9267,7 @@ The MIT License Copyright (c) 2013 The git2go contributors Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -9276,7 +9276,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -9286,15 +9286,15 @@ THE SOFTWARE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE - github.com/mattn/go-isatty -Copyright (c) Yasuhiro MATSUMOTO <mattn.jp@gmail.com> +Copyright (c) Yasuhiro MATSUMOTO <mattn.jp@gmail.com> MIT License (Expat) -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE - github.com/mattn/go-runewidth @@ -9303,7 +9303,7 @@ The MIT License (MIT) Copyright (c) 2016 Yasuhiro Matsumoto Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -9312,7 +9312,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -9330,38 +9330,38 @@ LICENSE - github.com/matttproud/golang_protobuf_extensions/pbutil 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -9369,21 +9369,21 @@ LICENSE - github.com/matttproud/golang_protobuf_extensions/pbutil separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -9427,7 +9427,7 @@ LICENSE - github.com/matttproud/golang_protobuf_extensions/pbutil excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -9466,7 +9466,7 @@ LICENSE - github.com/matttproud/golang_protobuf_extensions/pbutil 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -9502,24 +9502,24 @@ LICENSE - github.com/matttproud/golang_protobuf_extensions/pbutil APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright {yyyy} {name of copyright owner} - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -9538,38 +9538,38 @@ LICENSE - github.com/oklog/ulid/v2 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -9577,21 +9577,21 @@ LICENSE - github.com/oklog/ulid/v2 separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -9635,7 +9635,7 @@ LICENSE - github.com/oklog/ulid/v2 excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -9674,7 +9674,7 @@ LICENSE - github.com/oklog/ulid/v2 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -9710,24 +9710,24 @@ LICENSE - github.com/oklog/ulid/v2 APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -9737,7 +9737,7 @@ LICENSE.md - github.com/olekukonko/tablewriter Copyright (C) 2014 by Oleku Konko Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -9746,7 +9746,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -9759,7 +9759,7 @@ LICENCE - github.com/olekukonko/ts Copyright (C) 2014 by Oleku Konko Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -9768,7 +9768,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -9786,38 +9786,38 @@ LICENSE - github.com/opencontainers/runtime-spec/specs-go 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -9825,21 +9825,21 @@ LICENSE - github.com/opencontainers/runtime-spec/specs-go separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -9883,7 +9883,7 @@ LICENSE - github.com/opencontainers/runtime-spec/specs-go excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -9922,7 +9922,7 @@ LICENSE - github.com/opencontainers/runtime-spec/specs-go 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -9957,14 +9957,14 @@ LICENSE - github.com/opencontainers/runtime-spec/specs-go Copyright 2015 The Linux Foundation. - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -9979,38 +9979,38 @@ LICENSE - github.com/opentracing/opentracing-go 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -10018,21 +10018,21 @@ LICENSE - github.com/opentracing/opentracing-go separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -10076,7 +10076,7 @@ LICENSE - github.com/opentracing/opentracing-go excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -10115,7 +10115,7 @@ LICENSE - github.com/opentracing/opentracing-go 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -10151,24 +10151,24 @@ LICENSE - github.com/opentracing/opentracing-go APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2016 The OpenTracing Authors - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -10180,7 +10180,7 @@ The MIT License (MIT) Copyright (c) 2013 - 2017 Thomas Pelletier, Eric Anderton Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -10189,7 +10189,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -10199,7 +10199,7 @@ SOFTWARE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE - github.com/pkg/errors -Copyright (c) 2015, Dave Cheney <dave@cheney.net> +Copyright (c) 2015, Dave Cheney <dave@cheney.net> All rights reserved. Redistribution and use in source and binary forms, with or without @@ -10212,7 +10212,7 @@ modification, are permitted provided that the following conditions are met: this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE @@ -10241,8 +10241,8 @@ documentation and/or other materials provided with the distribution. products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -10263,38 +10263,38 @@ LICENSE - github.com/prometheus/client_golang/prometheus 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -10302,21 +10302,21 @@ LICENSE - github.com/prometheus/client_golang/prometheus separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -10360,7 +10360,7 @@ LICENSE - github.com/prometheus/client_golang/prometheus excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -10399,7 +10399,7 @@ LICENSE - github.com/prometheus/client_golang/prometheus 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -10435,24 +10435,24 @@ LICENSE - github.com/prometheus/client_golang/prometheus APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -10473,7 +10473,7 @@ https://github.com/beorn7/perks Copyright 2013-2015 Blake Mizerany, Björn Rabenstein See https://github.com/beorn7/perks/blob/master/README.md for license details. -Go support for Protocol Buffers - Google's data interchange format +Go support for Protocol Buffers - Google's data interchange format http://github.com/golang/protobuf/ Copyright 2010 The Go Authors See source code for license details. @@ -10493,38 +10493,38 @@ LICENSE - github.com/prometheus/client_model/go 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -10532,21 +10532,21 @@ LICENSE - github.com/prometheus/client_model/go separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -10590,7 +10590,7 @@ LICENSE - github.com/prometheus/client_model/go excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -10629,7 +10629,7 @@ LICENSE - github.com/prometheus/client_model/go 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -10665,24 +10665,24 @@ LICENSE - github.com/prometheus/client_model/go APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -10705,38 +10705,38 @@ LICENSE - github.com/prometheus/common 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -10744,21 +10744,21 @@ LICENSE - github.com/prometheus/common separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -10802,7 +10802,7 @@ LICENSE - github.com/prometheus/common excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -10841,7 +10841,7 @@ LICENSE - github.com/prometheus/common 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -10877,24 +10877,24 @@ LICENSE - github.com/prometheus/common APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -10912,7 +10912,7 @@ README.txt - github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg PACKAGE package goautoneg -import "bitbucket.org/ww/goautoneg" +import "bitbucket.org/ww/goautoneg" HTTP Content-Type Autonegotiation. @@ -10940,7 +10940,7 @@ met: permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -10987,38 +10987,38 @@ LICENSE - github.com/prometheus/procfs 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -11026,21 +11026,21 @@ LICENSE - github.com/prometheus/procfs separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -11084,7 +11084,7 @@ LICENSE - github.com/prometheus/procfs excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -11123,7 +11123,7 @@ LICENSE - github.com/prometheus/procfs 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -11159,24 +11159,24 @@ LICENSE - github.com/prometheus/procfs APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -11195,10 +11195,10 @@ SoundCloud Ltd. (http://soundcloud.com/). LICENSE - github.com/rubenv/sql-migrate MIT License -Copyright (C) 2014-2019 by Ruben Vermeersch <ruben@rocketeer.be> +Copyright (C) 2014-2019 by Ruben Vermeersch <ruben@rocketeer.be> Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -11207,7 +11207,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -11219,11 +11219,11 @@ SOFTWARE. LICENSE - github.com/rubenv/sql-migrate/sqlparse MIT License -Copyright (C) 2014-2017 by Ruben Vermeersch <ruben@rocketeer.be> +Copyright (C) 2014-2017 by Ruben Vermeersch <ruben@rocketeer.be> Copyright (C) 2012-2014 by Liam Staskawicz Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -11232,7 +11232,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -11248,7 +11248,7 @@ Copyright (c) 2014 Scott Barron Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including +'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to @@ -11257,7 +11257,7 @@ the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY @@ -11271,7 +11271,7 @@ Copyright (c) 2015 Sebastien Estienne (sebastien.estienne@gmail.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including +"Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to @@ -11280,7 +11280,7 @@ the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE @@ -11295,7 +11295,7 @@ The MIT License (MIT) Copyright (c) 2014 Simon Eskildsen Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -11304,7 +11304,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -11319,7 +11319,7 @@ MIT License Copyright (c) 2019 Stephen Gelman Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -11328,7 +11328,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -11343,7 +11343,7 @@ MIT License Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors. Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -11352,7 +11352,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -11370,38 +11370,38 @@ LICENSE - github.com/uber/jaeger-client-go 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -11409,21 +11409,21 @@ LICENSE - github.com/uber/jaeger-client-go separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -11467,7 +11467,7 @@ LICENSE - github.com/uber/jaeger-client-go excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -11506,7 +11506,7 @@ LICENSE - github.com/uber/jaeger-client-go 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -11542,24 +11542,24 @@ LICENSE - github.com/uber/jaeger-client-go APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -11574,38 +11574,38 @@ LICENSE - github.com/uber/jaeger-lib/metrics 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -11613,21 +11613,21 @@ LICENSE - github.com/uber/jaeger-lib/metrics separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -11671,7 +11671,7 @@ LICENSE - github.com/uber/jaeger-lib/metrics excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -11710,7 +11710,7 @@ LICENSE - github.com/uber/jaeger-lib/metrics 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -11746,24 +11746,24 @@ LICENSE - github.com/uber/jaeger-lib/metrics APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -11776,7 +11776,7 @@ MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including +"Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to @@ -11785,7 +11785,7 @@ the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE @@ -11803,38 +11803,38 @@ LICENSE.txt - gitlab.com/gitlab-org/gitaly/internal/praefect/grpc-proxy/proxy 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -11842,21 +11842,21 @@ LICENSE.txt - gitlab.com/gitlab-org/gitaly/internal/praefect/grpc-proxy/proxy separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -11900,7 +11900,7 @@ LICENSE.txt - gitlab.com/gitlab-org/gitaly/internal/praefect/grpc-proxy/proxy excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -11939,7 +11939,7 @@ LICENSE.txt - gitlab.com/gitlab-org/gitaly/internal/praefect/grpc-proxy/proxy 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -11976,7 +11976,7 @@ Copyright (c) 2011-2018 GitLab B.V. With regard to the GitLab Software: Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -11985,7 +11985,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -12004,7 +12004,7 @@ The MIT License (MIT) Copyright (c) 2016-2017 GitLab B.V. Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -12013,7 +12013,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -12032,38 +12032,38 @@ LICENSE - go.opencensus.io 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -12071,21 +12071,21 @@ LICENSE - go.opencensus.io separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -12129,7 +12129,7 @@ LICENSE - go.opencensus.io excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -12168,7 +12168,7 @@ LICENSE - go.opencensus.io 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -12204,24 +12204,24 @@ LICENSE - go.opencensus.io APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -12232,7 +12232,7 @@ The MIT License (MIT) Copyright (c) 2018 Uber Technologies, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal +of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is @@ -12241,7 +12241,7 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -12268,7 +12268,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -12298,7 +12298,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -12328,7 +12328,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -12358,7 +12358,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -12388,7 +12388,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -12418,7 +12418,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -12448,7 +12448,7 @@ contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, @@ -12470,38 +12470,38 @@ LICENSE - google.golang.org/genproto 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -12509,21 +12509,21 @@ LICENSE - google.golang.org/genproto separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -12567,7 +12567,7 @@ LICENSE - google.golang.org/genproto excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -12606,7 +12606,7 @@ LICENSE - google.golang.org/genproto 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -12642,24 +12642,24 @@ LICENSE - google.golang.org/genproto APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -12675,38 +12675,38 @@ LICENSE - google.golang.org/grpc 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -12714,21 +12714,21 @@ LICENSE - google.golang.org/grpc separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -12772,7 +12772,7 @@ LICENSE - google.golang.org/grpc excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -12811,7 +12811,7 @@ LICENSE - google.golang.org/grpc 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -12847,24 +12847,24 @@ LICENSE - google.golang.org/grpc APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -12873,11 +12873,11 @@ LICENSE - google.golang.org/grpc LICENSE - gopkg.in/gorp.v1 (The MIT License) -Copyright (c) 2012 James Cooper <james@bitmechanic.com> +Copyright (c) 2012 James Cooper <james@bitmechanic.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including +'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to @@ -12886,7 +12886,7 @@ the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY @@ -12904,38 +12904,38 @@ LICENSE - gopkg.in/jcmturner/aescts.v1 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -12943,21 +12943,21 @@ LICENSE - gopkg.in/jcmturner/aescts.v1 separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -13001,7 +13001,7 @@ LICENSE - gopkg.in/jcmturner/aescts.v1 excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -13040,7 +13040,7 @@ LICENSE - gopkg.in/jcmturner/aescts.v1 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -13076,24 +13076,24 @@ LICENSE - gopkg.in/jcmturner/aescts.v1 APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright {yyyy} {name of copyright owner} - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -13108,38 +13108,38 @@ LICENSE - gopkg.in/jcmturner/dnsutils.v1 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -13147,21 +13147,21 @@ LICENSE - gopkg.in/jcmturner/dnsutils.v1 separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -13205,7 +13205,7 @@ LICENSE - gopkg.in/jcmturner/dnsutils.v1 excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -13244,7 +13244,7 @@ LICENSE - gopkg.in/jcmturner/dnsutils.v1 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -13280,24 +13280,24 @@ LICENSE - gopkg.in/jcmturner/dnsutils.v1 APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -13312,38 +13312,38 @@ LICENSE - gopkg.in/jcmturner/gokrb5.v5 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -13351,21 +13351,21 @@ LICENSE - gopkg.in/jcmturner/gokrb5.v5 separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -13409,7 +13409,7 @@ LICENSE - gopkg.in/jcmturner/gokrb5.v5 excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -13448,7 +13448,7 @@ LICENSE - gopkg.in/jcmturner/gokrb5.v5 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -13484,24 +13484,24 @@ LICENSE - gopkg.in/jcmturner/gokrb5.v5 APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright {yyyy} {name of copyright owner} - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -13516,38 +13516,38 @@ LICENSE - gopkg.in/jcmturner/rpc.v0/ndr 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the + "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - "Object" form shall mean any form resulting from mechanical + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes @@ -13555,21 +13555,21 @@ LICENSE - gopkg.in/jcmturner/rpc.v0/ndr separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" + the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. @@ -13613,7 +13613,7 @@ LICENSE - gopkg.in/jcmturner/rpc.v0/ndr excluding those notices that do not pertain to any part of the Derivative Works; and - (d) If the Work includes a "NOTICE" text file as part of its + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not @@ -13652,7 +13652,7 @@ LICENSE - gopkg.in/jcmturner/rpc.v0/ndr 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A @@ -13688,24 +13688,24 @@ LICENSE - gopkg.in/jcmturner/rpc.v0/ndr APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier + same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] - Licensed under the Apache License, Version 2.0 (the "License"); + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -13728,7 +13728,7 @@ Copyright (c) 2006-2010 Kirill Simonov Copyright (c) 2006-2011 Kirill Simonov Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in +this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do @@ -13737,7 +13737,7 @@ so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER @@ -13751,14 +13751,14 @@ All the remaining project files are covered by the Apache license: Copyright (c) 2011-2019 Canonical Ltd -Licensed under the Apache License, Version 2.0 (the "License"); +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. @@ -13767,14 +13767,14 @@ limitations under the License. NOTICE - gopkg.in/yaml.v3 Copyright 2011-2016 Canonical Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. diff --git a/_support/noticegen/noticegen.go b/_support/noticegen/noticegen.go index c54d1df7d..57467cbea 100644 --- a/_support/noticegen/noticegen.go +++ b/_support/noticegen/noticegen.go @@ -2,11 +2,11 @@ package main import ( "flag" - "html/template" "io/ioutil" "log" "os" "path/filepath" + "text/template" ) var ( |