Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
201 commits
Select commit Hold shift + click to select a range
ae772c6
Setting up GitHub Classroom Feedback
github-classroom[bot] Mar 22, 2023
c4ca40f
feat(gitignore): was made
Kuarni Mar 25, 2023
4fd72d3
init(class): abstract BinTree
Kuarni Mar 25, 2023
3468a09
init(class): abstract BalanceTree
Kuarni Mar 25, 2023
4ea3649
init(class): BSTree
Kuarni Mar 25, 2023
f2332ab
init(class): AVLTree
Kuarni Mar 25, 2023
22fdf94
init(class): RBTree
Kuarni Mar 25, 2023
9a45fe5
init(test): BSTreeTest
Kuarni Mar 25, 2023
706d772
feat: gradle and CI
Kuarni Mar 25, 2023
790baf8
fix: added a forgotten file for gradle
Kuarni Mar 25, 2023
e010246
docs: add license
juliakononov Mar 25, 2023
1577672
refactor: add empty line in the end of src files
Kuarni Mar 25, 2023
a73c384
refactor: auto-formatting
Kuarni Mar 25, 2023
4f6e579
feat: add fun remove for BSTree
juliakononov Mar 26, 2023
734817e
feat: breadthFirstSearch in BinTree
Kuarni Mar 27, 2023
526637d
feat: Debug and add null padding in BFS
Kuarni Mar 27, 2023
cfdf0fa
feat: tests are allocated a separate class
Kuarni Mar 27, 2023
c352416
feat: add tests (insert tests)
Kuarni Mar 28, 2023
54bde61
fix: behavior when adding one key
Kuarni Mar 28, 2023
9e41ade
feat: removed the launch of actions at pull request
Kuarni Mar 28, 2023
47dabb7
feat: update actions.yml
Kuarni Mar 30, 2023
7c677cc
fix: change setup-java on v1
Kuarni Mar 30, 2023
e23eef9
feat: add Gradle cash
Kuarni Mar 30, 2023
be0d0c1
feat: add launch at pull request to the work
Kuarni Mar 30, 2023
e1d880b
feat: update actions/cache to v3
Kuarni Mar 30, 2023
3d78789
feat: update setup-java to v3
Kuarni Mar 30, 2023
098cef0
Merge pull request #3 from spbu-coding-2022/update_actions
Kuarni Mar 30, 2023
aa024b1
feat: add fun minElement, maxElement, nextElement to abstractBinTree
juliakononov Mar 31, 2023
28619b5
fix: fun remove for BSTree
juliakononov Mar 31, 2023
e6f04a5
feat: fun getGrandparent, getUncle
juliakononov Mar 31, 2023
5681b32
feat: fun rotation
juliakononov Mar 31, 2023
d33eaf2
fix: fun rotation: add enum class RotationType
juliakononov Mar 31, 2023
d1ffa37
feat: fun insertNode, removeNode in abstractBinTree.kt
juliakononov Mar 31, 2023
20f98e8
Merge remote-tracking branch 'origin/work' into work
juliakononov Mar 31, 2023
c7520bb
feat: fun rebalancing for insert in RBTree
juliakononov Apr 1, 2023
44a0e07
feat: add function insertService in BinTree
Kuarni Mar 31, 2023
f414a2e
feat: reworked insert in the trees
Kuarni Mar 31, 2023
fc50921
feat: add get, remove and insert with array arg
Kuarni Apr 5, 2023
6c3b3f7
fix: get left leaf problem fix
Kuarni Apr 5, 2023
98032fa
Merge branch 'work' into functions_overloading
Kuarni Apr 5, 2023
bf6d675
feat: new tests for BSTree
Kuarni Apr 5, 2023
f29013d
fix: now child in old parents == null in removeNode
Kuarni Apr 5, 2023
03cb12d
refactor: auto refactoring in BSTree
Kuarni Apr 5, 2023
2ac8448
fix: fix remove test using debug
Kuarni Apr 5, 2023
c40aaa9
feat: expand multiple removal test
Kuarni Apr 5, 2023
cd481cf
feat(small change): change type of Debug class to internal
Kuarni Apr 6, 2023
fc49cbb
Merge pull request #5 from spbu-coding-2022/new_tests
Kuarni Apr 6, 2023
5203ea8
git: merge work into RBTree_Balancer
Kuarni Apr 6, 2023
3ff1346
git: merge my work with RBTree_Balancer
juliakononov Apr 6, 2023
20e5c7d
feat: insert with autobalancing is implemented
Apr 6, 2023
effbb32
Merge branch 'RBTree_Balancer' into AVLTree_functions
Apr 7, 2023
05b753b
feat: add new dependencies in gradle for junit (bom)
Kuarni Apr 9, 2023
5c786cb
feat: unite some old tests in param tests, add new tests
Kuarni Apr 9, 2023
29b61c5
feat: balancing is implemented
Apr 10, 2023
0b90313
fix: fixed bugs in the rotation fun
juliakononov Apr 10, 2023
6d44e1a
Merge pull request #7 from spbu-coding-2022/new_tests
Kuarni Apr 11, 2023
2391b6d
Merge branch 'RBTree_Balancer' into AVLTree_functions
Apr 11, 2023
dc3eb62
Merge pull request #8 from spbu-coding-2022/AVLTree_functions
Kuarni Apr 11, 2023
0ab6ade
feat: add new test with non-standard struct
Kuarni Apr 14, 2023
8535f65
fix: fun removeService
juliakononov Apr 16, 2023
a862322
fix: fun removeService for BSTree
juliakononov Apr 16, 2023
b31e509
fix: fun rotation accepts a node
juliakononov Apr 16, 2023
73e5424
feat: fun remove for RBTree
juliakononov Apr 16, 2023
90280c4
remove is implemented
Apr 16, 2023
948d2bf
Merge branch 'work' into AVLTree_functions
Apr 16, 2023
4407360
refactor: moved Parametized tests under companion object
Kuarni Apr 16, 2023
dc89ccf
feat: add constructors to AVLTree
Kuarni Apr 16, 2023
738b697
test: add tests for AVLTree
Kuarni Apr 16, 2023
ccd61ec
refactor: change List in BFS to Queue
Kuarni Apr 16, 2023
5d972f2
fix: fun remove for BinTree
juliakononov Apr 17, 2023
5b52a93
Merge remote-tracking branch 'origin/work' into RBTree_Balancer
juliakononov Apr 17, 2023
374f15b
fix: delete error message from remove BSTree
juliakononov Apr 17, 2023
5331dff
refactor: rename rotation types
juliakononov Apr 17, 2023
31dc712
Merge branch 'AVL_tests' into RBTree_Balancer
Kuarni Apr 17, 2023
5fa6b5c
test: disable AVLTreeTest
Kuarni Apr 17, 2023
6f960e1
Merge remote-tracking branch 'origin/RBTree_Balancer' into AVLTree_fu…
juliakononov Apr 17, 2023
31b0c9a
test: tests for RBTree
Kuarni Apr 17, 2023
22226c3
fix: multiple fixes after tests
Kuarni Apr 17, 2023
b1d3124
refactor: refactor tests
Kuarni Apr 18, 2023
a222226
fix: AVLTree constructor
Kuarni Apr 18, 2023
24d41e8
refactor: move lambda argument out parenthesis
Kuarni Apr 18, 2023
e1cd165
Merge pull request #12 from spbu-coding-2022/RBTree_Balancer
Kuarni Apr 18, 2023
6edef89
fix: tests for AVLTree
juliakononov Apr 18, 2023
c74b150
fix: many fixes + general refactoring
juliakononov Apr 18, 2023
ded47d4
Merge pull request #10 from spbu-coding-2022/refactoring
Kuarni Apr 18, 2023
1bddda0
refactor: rename some tests, fix names of some parametrized tests
Kuarni Apr 18, 2023
8184980
Merge pull request #13 from spbu-coding-2022/AVLTree_functions
Kuarni Apr 18, 2023
e252c51
refactor: add some commit
juliakononov Apr 18, 2023
b927118
feat: change constructors and insert functions, now sort isn't defaul…
Kuarni Apr 18, 2023
eece948
Merge pull request #14 from spbu-coding-2022/work
Kuarni Apr 18, 2023
4493c06
feat: add tree with save to neo4j
Kuarni Apr 18, 2023
6028753
refactor: change name of some functions
Kuarni Apr 18, 2023
ead6d5b
feat: make save smarter
Kuarni Apr 19, 2023
33ba133
feat: remove init driver, session, close from Tree and added the poss…
Kuarni Apr 19, 2023
133ec5e
docs: add readme
juliakononov Apr 19, 2023
021801a
feat: add directories and neo4j functions
Kuarni Apr 19, 2023
dd8a260
refactor: rename directory
Kuarni Apr 19, 2023
a6c353c
Merge pull request #15 from spbu-coding-2022/README
Kuarni Apr 19, 2023
7159ff6
Merge pull request #16 from spbu-coding-2022/neo4j
Kuarni Apr 19, 2023
d22480c
feat: add interfaces
Kuarni Apr 19, 2023
ee9f9e2
refactor: add inheritance from interfaces
Kuarni Apr 19, 2023
8fafc35
refactor: clean code
Kuarni Apr 19, 2023
bcb92ea
refactor: change directory
Kuarni Apr 19, 2023
7eeb6f5
refactor: make classes open
Kuarni Apr 19, 2023
b2691dd
test(fix): change type of return tree
Kuarni Apr 19, 2023
e160aa1
refactor: make open
Kuarni Apr 19, 2023
3a70699
Revert "refactor: make open"
Kuarni Apr 19, 2023
61a4035
Revert "refactor: make classes open"
Kuarni Apr 19, 2023
7889061
fix: make open and add import of abstract classes
Kuarni Apr 19, 2023
14c13bb
Merge pull request #17 from spbu-coding-2022/refactoring
Kuarni Apr 19, 2023
b3f677f
fix: AVLTree remove
Kuarni Apr 19, 2023
8731346
refactor: rename savedTree to removeTree
Kuarni Apr 19, 2023
4f99f1b
feat: add json save
Kuarni Apr 19, 2023
e42a68e
feat: add SQLite save
Kuarni Apr 19, 2023
54e5abb
refactor: add line break
Kuarni Apr 19, 2023
d634e88
docs: change readme
juliakononov Apr 19, 2023
bd03be0
Merge pull request #19 from spbu-coding-2022/readme
Kuarni Apr 19, 2023
2260a91
Merge pull request #18 from spbu-coding-2022/work
Kuarni Apr 19, 2023
9b0fd37
fix: first day patch
Kuarni Apr 20, 2023
2c2f992
Merge pull request #22 from spbu-coding-2022/work
Kuarni Apr 22, 2023
aa30b5c
refactor(gradle)!: change gradle project struct
Kuarni Apr 22, 2023
345679f
refactor(gitignore): update and clean gitignore
Kuarni Apr 22, 2023
7cd47ec
fix: some tests in RBTree
juliakononov Apr 24, 2023
8dd2afa
fix: RBTree balancer after remove
juliakononov Apr 24, 2023
9559293
Merge pull request #23 from spbu-coding-2022/project_general_refactor
Kuarni Apr 24, 2023
f3f8685
Merge pull request #24 from spbu-coding-2022/RBTree_fix
Kuarni Apr 24, 2023
d92f88d
refactor(database): Completely reworked saving to databases
Kuarni Apr 24, 2023
f77a53a
ci(refactor): add new os to run and add name for checkout
Kuarni Apr 24, 2023
c3412e5
ci(fix): remove old run system
Kuarni Apr 24, 2023
9a11f29
feat: combine all the trees into the package "trees" and clean code
Kuarni Apr 24, 2023
0372a93
Merge pull request #25 from spbu-coding-2022/project_general_refactor
Kuarni Apr 24, 2023
8b4980f
fix(db): fix all the database, add properties files, add clean fun to…
Kuarni Apr 26, 2023
e912506
Merge pull request #26 from spbu-coding-2022/project_general_refactor
juliakononov Apr 27, 2023
0d3bbcc
feat: new dependencies (Compose, MaterialDesign)
juliakononov Apr 27, 2023
a31542c
feat: resources for MaterialDesign
juliakononov Apr 27, 2023
b3b067c
feat: Window layout
juliakononov Apr 27, 2023
a859ec6
feat: fun draw Tree
juliakononov Apr 27, 2023
2f53898
feat: Controller layout
juliakononov Apr 27, 2023
cd7ebff
refactor(db): Change all double to float
Kuarni Apr 29, 2023
4a70b1b
refactor(db): now the maximum length of the string is taken as a para…
Kuarni Apr 29, 2023
73a4721
refactor(gradle): clean gradle file
Kuarni Apr 29, 2023
630a519
feat: make functions in controller and BinTree
Kuarni Apr 29, 2023
260349f
feat: rework the coordinate calculation
Kuarni Apr 30, 2023
bf1d3ff
feat: creat new windows
juliakononov Apr 30, 2023
3b1faf1
fix: treeWindow: add shape and color for components
juliakononov Apr 30, 2023
9788d66
docs: add docs for public methods
Kuarni May 1, 2023
3de704e
refactor: rename getAllNode -> getAllNodes
Kuarni May 1, 2023
12d1575
feat(controller): add Database class and small refactor
Kuarni May 1, 2023
9ce8523
refactor(database): Improve error messages
Kuarni May 1, 2023
9ef0e4f
Merge remote-tracking branch 'origin/controller' into gui
juliakononov May 1, 2023
9a1f52f
feat(database): add save of view coordinate
Kuarni May 1, 2023
6f9f6fd
feat: add navigation in app
juliakononov May 1, 2023
596682d
feat: add windows for app
juliakononov May 1, 2023
dd8d611
refactor(properties): add App.properties and move max_string_len to A…
Kuarni May 1, 2023
6600f23
feat: change gradle application
juliakononov May 1, 2023
3e67035
feat: add lazy column to open window
juliakononov May 1, 2023
d3225d4
fix(database): dirs create during the initialization
Kuarni May 1, 2023
e06a95e
refactor(controller): make the controller an object
Kuarni May 1, 2023
7279c4f
Merge branch 'gui' into trash
Kuarni May 1, 2023
59a380d
fix(ui): change main extension to kt, remove Controller instantiation
Kuarni May 1, 2023
5d4dd63
refactor(controller, properties): add name of database to properties,…
Kuarni May 2, 2023
8e7332d
refactor(database): change getAllTree return to list of Triple(name, …
Kuarni May 2, 2023
5c4e397
refactor(controller): change Pair(x, y) to x and y in DrawNode
Kuarni May 2, 2023
3ae58a6
refactor(controller): make x, y, prevX, prevY mutable state
Kuarni May 2, 2023
f0733bf
feat(ui): fix the work and make the loading of trees beautiful
Kuarni May 2, 2023
b93d72b
fix(database): add connection check to init
Kuarni May 2, 2023
ef7ef34
ci(refactor): rename gradle -> gradle build, delete grand execute per…
Kuarni May 2, 2023
86a3c28
ci(refactor): make files executable
Kuarni May 2, 2023
5d2d493
refactor(gitignore): clean gitignore
Kuarni May 2, 2023
8e8589a
Merge branch 'main' into work
Kuarni May 2, 2023
f817979
feat(ui): add error message for user input
Kuarni May 2, 2023
55d3b55
refactor(controller): Now the node does not have the coordinates of t…
Kuarni May 2, 2023
1f4953a
feat: add reInitAllDrawNodes
juliakononov May 2, 2023
8f323dc
fix: drawTree
juliakononov May 2, 2023
40361be
feat: save dialog box
juliakononov May 2, 2023
2ca16cd
feat(app): add drag in app
juliakononov May 2, 2023
1b3244f
feat(ui): rework creating new tree window
Kuarni May 2, 2023
2edd2c6
feat(app): add button "go to tree Root!"
juliakononov May 2, 2023
fe7e56b
fix(app): change buttons size in CreatNewTree window
juliakononov May 2, 2023
93b11c7
fix(app): Open function
juliakononov May 2, 2023
9c85ef1
Merge pull request #27 from spbu-coding-2022/refactoring
Kuarni May 2, 2023
cc27e67
refactor(controller): change key type to Int
Kuarni May 2, 2023
534ac25
fix(ui): set keys type to Int everywhere
Kuarni May 2, 2023
b59a435
fix(database): add creating dirs for sql database
Kuarni May 2, 2023
09786e0
fix(app): add update Coordinates
juliakononov May 2, 2023
f470591
refactor: change Material Theme
juliakononov May 2, 2023
e06951a
feat(app): add icon
juliakononov May 2, 2023
fa82abe
fix(database): fix saving to Neo4j
Kuarni May 2, 2023
216709c
feat(ui): add validating to tree, saving of offsetX, Y
Kuarni May 2, 2023
96aab0e
fix(app): icon
juliakononov May 2, 2023
df9d8a7
refactor(app): change project struct
juliakononov May 2, 2023
53881e7
Create README.md
juliakononov May 2, 2023
4359a87
Merge remote-tracking branch 'origin/work' into gui
juliakononov May 2, 2023
9f55d78
Merge remote-tracking branch 'origin/gui' into gui
juliakononov May 3, 2023
5a085ac
Merge pull request #29 from spbu-coding-2022/gui
juliakononov May 3, 2023
8c48200
fix(ui): fix calculation of coordinates
Kuarni May 3, 2023
0bbfdfb
Merge pull request #30 from spbu-coding-2022/gui
juliakononov May 3, 2023
c6d3549
Merge pull request #31 from spbu-coding-2022/work
juliakononov May 3, 2023
bbc8d2b
Update README.md
juliakononov May 3, 2023
2664aee
feat(ui): Secret
Kuarni May 3, 2023
8bf8207
Merge pull request #32 from spbu-coding-2022/Readme
juliakononov May 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/gradle build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: test

on:
push:
pull_request:
branches: [work]

jobs:
build:
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
runs-on: ${{ matrix.os }}

steps:
- name: actions checkout
uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: 18
distribution: 'temurin'

- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle

- name: Build with Gradle
run: ./gradlew build
108 changes: 108 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
/.idea/

/.gradle/

build-logic/.gradle/

**/build

# File-based project format
*.iws

# IntelliJ
out/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### Kotlin ###
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*

### Linux ###
*~

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets

# Local History for Visual Studio Code
.history/

# Built Visual Studio Code Extensions
*.vsix

### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide

### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk
202 changes: 202 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"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 owner that is granting the License.

"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
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 permissions granted by this License.

"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 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 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 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 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
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."

"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.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) 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

(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
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and 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,
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 solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

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 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 third-party archives.

Copyright [yyyy] [name of copyright owner]

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.
Loading