<?xml version="1.0" encoding="UTF-8"?>

<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you 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.

-->

<licenseinfo>
    <fileset>
        <file>src/org/netbeans/modules/kotlin/editor/Kotlin.tmLanguage.json</file>
        <license ref="Apache-2.0" />
        <comment type="COMMENT_UNSUPPORTED">Source: https://github.com/vkostyukov/kotlin-sublime-package/blob/ce599a846ac9f86d4671a024d21220ca08e50f66/Kotlin.JSON-tmLanguage</comment>
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/kotlin/editor/kotlin_file.svg</file>
        <file>src/org/netbeans/modules/kotlin/editor/kotlin_file.png</file>
        <file>src/org/netbeans/modules/kotlin/editor/kotlin_file@2x.png</file>
        <license ref="Apache-2.0" />
        <comment type="COMMENT_UNSUPPORTED">Source: https://github.com/JetBrains/kotlin/tree/4c674ae27a9b4f53acbf84bda0127c52696d258b/idea/resources/org/jetbrains/kotlin/idea/icons</comment>
        <notice>Kotlin Compiler
Copyright 2010-2019 JetBrains s.r.o and respective authors and developers</notice>
    </fileset>
</licenseinfo>
