Copyright Notice: markdown syntax
=================================

.. code-block:: HTML
   :caption: Markdown Syntax

   <!--
   # -----------------------------------------------------------------------
   # Copyright 2017-2026 Linux Foundation Broadband Contributors
   # Copyright 2017-2024 Linux Foundation Broadband Contributors
   #
   # 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,
   # 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.
   # -----------------------------------------------------------------------
   # SPDX-FileCopyrightText: 2017-2026 Linux Foundation Broadband Contributors
   # SPDX-License-Identifier: Apache-2.0
   # -----------------------------------------------------------------------
   # Intent:
   # -----------------------------------------------------------------------
   -->
