1
0
Fork 0

Adding upstream version 7.0.20-dfsg.

Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
Daniel Baumann 2025-06-22 09:56:04 +02:00
parent d0c7daf57c
commit df1bda4fe9
Signed by: daniel.baumann
GPG key ID: BCC918A2ABD66424
26643 changed files with 10005219 additions and 0 deletions

16
.dir-locals.el Normal file
View file

@ -0,0 +1,16 @@
;;; Directory Local Variables
;;; See Info node `(emacs) Directory Variables' for more information.
;; You might want to use
;;
;; (put 'indent-tabs-mode 'permanent-local t)
;;
;; to ensure that it's not reset when you manually switch an .h file
;; that was automatically opened in c-mode to c++-mode.
((c++-mode
(indent-tabs-mode))
(c-mode
(indent-tabs-mode))
(nxml-mode
(indent-tabs-mode)))

93
.scm-settings Normal file
View file

@ -0,0 +1,93 @@
# $Id: .scm-settings $
## @file
# Top level source code massager settings.
#
# This will be loaded when scm is pointed to any file or directory in the
# VirtualBox source tree. It will recursively load all .scm-settings files
# it find in or above directories or files it's told to work on. So,
# .scm-settings files can be placed in sub-directories in the tree to provide
# additional settins specific to that sub-tree.
#
#
# Copyright (C) 2010-2023 Oracle and/or its affiliates.
#
# This file is part of VirtualBox base platform packages, as
# available from https://www.virtualbox.org.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, in version 3 of the
# License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses>.
#
# SPDX-License-Identifier: GPL-3.0-only
#
#
# Global settings.
#
# Only consider directories and files that are part of a SVN working set.
#
--only-svn-dirs
--only-svn-files
--set-svn-eol
--set-svn-executable
--set-svn-keywords
#
# Directories to ignore.
#
# These are simple string patterns (see iprt/string.h) and we'll match both the
# base name as well as the absolute path of each directory we consider for
# recursion against these patterns.
#
--filter-out-dirs ".svn"
--filter-out-dirs "/*out*/."
--filter-out-dirs "/kBuild/."
--filter-out-dirs "/*kBuild_*/."
--filter-out-dirs "/*kBuild.*/."
--filter-out-dirs "/*_kBuild*/."
--filter-out-dirs "/SlickEdit/."
#
# Files to ignore.
#
# Same format as for the directories, except that we'll also apply them to
# files specified directly on the command line.
#
--filter-out-files "/vslick.h"
--filter-out-files "/.dir-locals.el"
--filter-out-files "*/.gitignore"
--filter-out-files "*/PkgInfo"
--filter-out-files "*/*-PkgInfo"
--filter-out-files "*.crt"
--filter-out-files "*.plist"
--filter-out-files "*.provisionprofile"
--filter-out-files "*/Doxyfile*"
--filter-out-files "*/COPYING"
--filter-out-files "*/COPYING.LIB"
--filter-out-files "*/COPYING.CDDL"
--filter-out-files "*/COPYING.GPLv2"
--filter-out-files "*/COPYING.UBDL"
--filter-out-files "*.desktop"
--filter-out-files "*/.swagger-codegen-ignore"
--filter-out-files "*/.swagger-codegen/VERSION"
#
# Header guards are by default relative to the parent directory.
#
--guard-prefix VBOX_INCLUDED_SRC_
--guard-relative-to-dir {parent}
--fix-header-guard-endif

663
COPYING Normal file
View file

@ -0,0 +1,663 @@
COPYING file for VirtualBox versions 7.0 and later versions that include this
file
Preliminary notes:
1) The majority of the code in the VirtualBox base package is licensed under
the GNU General Public License, version 3 (GPL). VirtualBox contains many
components developed by Oracle and various third parties. The license for
each component is located in the licensing documentation and/or in the
component's source code.
2) As an exception to the reciprocal license obligations of the GPL listed
below, you may use any VirtualBox header file that is marked by Oracle as
licensed under both the GPL and the Common Development and Distribution
License version 1.0 (CDDL) to invoke the unmodified VirtualBox libraries. In
other words, calling such a multi-licensed interface by dynamically linking
to the unmodified VirtualBox libraries is considered a normal use of
VirtualBox and does not turn the calling code into a derived work of
VirtualBox. In particular, this applies to code that wants to extend
VirtualBox by way of the Extension Pack mechanism declared in the ExtPack.h
header file.
3) Whoever creates or distributes a derived work based on VirtualBox is not
obligated to grant the above exceptions for such a version. The GPL permits
you to release a modified version without the above exception; in addition,
Oracle hereby also allows you to release a modified version which carries
forward these exceptions.
Oracle America, Inc.
---
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for software and
other kinds of works.
The licenses for most software and other practical works are designed to take
away your freedom to share and change the works. By contrast, the GNU General
Public License is intended to guarantee your freedom to share and change all
versions of a program--to make sure it remains free software for all its
users. We, the Free Software Foundation, use the GNU General Public License
for most of our software; it applies also to any other work released this way
by its authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom
to distribute copies of free software (and charge for them if you wish), that
you receive source code or can get it if you want it, that you can change the
software or use pieces of it in new free programs, and that you know you can
do these things.
To protect your rights, we need to prevent others from denying you these
rights or asking you to surrender the rights. Therefore, you have certain
responsibilities if you distribute copies of the software, or if you modify
it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or
for a fee, you must pass on to the recipients the same freedoms that you
received. You must make sure that they, too, receive or can get the source
code. And you must show them these terms so they know their rights.
Developers that use the GNU GPL protect your rights with two steps: (1)
assert copyright on the software, and (2) offer you this License giving you
legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains that
there is no warranty for this free software. For both users' and authors'
sake, the GPL requires that modified versions be marked as changed, so that
their problems will not be attributed erroneously to authors of previous
versions.
Some devices are designed to deny users access to install or run modified
versions of the software inside them, although the manufacturer can do so.
This is fundamentally incompatible with the aim of protecting users' freedom
to change the software. The systematic pattern of such abuse occurs in the
area of products for individuals to use, which is precisely where it is most
unacceptable. Therefore, we have designed this version of the GPL to prohibit
the practice for those products. If such problems arise substantially in
other domains, we stand ready to extend this provision to those domains in
future versions of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents. States
should not allow patents to restrict development and use of software on
general-purpose computers, but in those that do, we wish to avoid the special
danger that patents applied to a free program could make it effectively
proprietary. To prevent this, the GPL assures that patents cannot be used to
render the program non-free.
The precise terms and conditions for copying, distribution and modification
follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this License.
Each licensee is addressed as "you". "Licensees" and "recipients" may be
individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work in a
fashion requiring copyright permission, other than the making of an exact
copy. The resulting work is called a "modified version" of the earlier work
or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based on the
Program.
To "propagate" a work means to do anything with it that, without permission,
would make you directly or secondarily liable for infringement under
applicable copyright law, except executing it on a computer or modifying a
private copy. Propagation includes copying, distribution (with or without
modification), making available to the public, and in some countries other
activities as well.
To "convey" a work means any kind of propagation that enables other parties
to make or receive copies. Mere interaction with a user through a computer
network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices" to the
extent that it includes a convenient and prominently visible feature that (1)
displays an appropriate copyright notice, and (2) tells the user that there
is no warranty for the work (except to the extent that warranties are
provided), that licensees may convey the work under this License, and how to
view a copy of this License. If the interface presents a list of user
commands or options, such as a menu, a prominent item in the list meets this
criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work for making
modifications to it. "Object code" means any non-source form of a work.
A "Standard Interface" means an interface that either is an official standard
defined by a recognized standards body, or, in the case of interfaces
specified for a particular programming language, one that is widely used
among developers working in that language.
The "System Libraries" of an executable work include anything, other than the
work as a whole, that (a) is included in the normal form of packaging a Major
Component, but which is not part of that Major Component, and (b) serves only
to enable use of the work with that Major Component, or to implement a
Standard Interface for which an implementation is available to the public in
source code form. A "Major Component", in this context, means a major
essential component (kernel, window system, and so on) of the specific
operating system (if any) on which the executable work runs, or a compiler
used to produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all the
source code needed to generate, install, and (for an executable work) run the
object code and to modify the work, including scripts to control those
activities. However, it does not include the work's System Libraries, or
general-purpose tools or generally available free programs which are used
unmodified in performing those activities but which are not part of the work.
For example, Corresponding Source includes interface definition files
associated with source files for the work, and the source code for shared
libraries and dynamically linked subprograms that the work is specifically
designed to require, such as by intimate data communication or control flow
between those subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate
automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright
on the Program, and are irrevocable provided the stated conditions are met.
This License explicitly affirms your unlimited permission to run the
unmodified Program. The output from running a covered work is covered by this
License only if the output, given its content, constitutes a covered work.
This License acknowledges your rights of fair use or other equivalent, as
provided by copyright law.
You may make, run and propagate covered works that you do not convey, without
conditions so long as your license otherwise remains in force. You may convey
covered works to others for the sole purpose of having them make
modifications exclusively for you, or provide you with facilities for running
those works, provided that you comply with the terms of this License in
conveying all material for which you do not control copyright. Those thus
making or running the covered works for you must do so exclusively on your
behalf, under your direction and control, on terms that prohibit them from
making any copies of your copyrighted material outside their relationship
with you.
Conveying under any other circumstances is permitted solely under the
conditions stated below. Sublicensing is not allowed; section 10 makes it
unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure
under any applicable law fulfilling obligations under article 11 of the WIPO
copyright treaty adopted on 20 December 1996, or similar laws prohibiting or
restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention is
effected by exercising rights under this License with respect to the covered
work, and you disclaim any intention to limit operation or modification of
the work as a means of enforcing, against the work's users, your or third
parties' legal rights to forbid circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive
it, in any medium, provided that you conspicuously and appropriately publish
on each copy an appropriate copyright notice; keep intact all notices stating
that this License and any non-permissive terms added in accord with section 7
apply to the code; keep intact all notices of the absence of any warranty;
and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you
may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce
it from the Program, in the form of source code under the terms of section 4,
provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it,
and giving a relevant date.
b) The work must carry prominent notices stating that it is released
under this License and any conditions added under section 7. This requirement
modifies the requirement in section 4 to "keep intact all notices".
c) You must license the entire work, as a whole, under this License to
anyone who comes into possession of a copy. This License will therefore
apply, along with any applicable section 7 additional terms, to the whole of
the work, and all its parts, regardless of how they are packaged. This
License gives no permission to license the work in any other way, but it does
not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive interfaces
that do not display Appropriate Legal Notices, your work need not make them
do so.
A compilation of a covered work with other separate and independent works,
which are not by their nature extensions of the covered work, and which are
not combined with it such as to form a larger program, in or on a volume of a
storage or distribution medium, is called an "aggregate" if the compilation
and its resulting copyright are not used to limit the access or legal rights
of the compilation's users beyond what the individual works permit. Inclusion
of a covered work in an aggregate does not cause this License to apply to the
other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections
4 and 5, provided that you also convey the machine-readable Corresponding
Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the Corresponding
Source fixed on a durable physical medium customarily used for software
interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a written offer,
valid for at least three years and valid for as long as you offer spare parts
or customer support for that product model, to give anyone who possesses the
object code either (1) a copy of the Corresponding Source for all the
software in the product that is covered by this License, on a durable
physical medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this conveying of
source, or (2) access to copy the Corresponding Source from a network server
at no charge.
c) Convey individual copies of the object code with a copy of the written
offer to provide the Corresponding Source. This alternative is allowed only
occasionally and noncommercially, and only if you received the object code
with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place
(gratis or for a charge), and offer equivalent access to the Corresponding
Source in the same way through the same place at no further charge. You need
not require recipients to copy the Corresponding Source along with the object
code. If the place to copy the object code is a network server, the
Corresponding Source may be on a different server (operated by you or a third
party) that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the Corresponding
Source, you remain obligated to ensure that it is available for as long as
needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you
inform other peers where the object code and Corresponding Source of the work
are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from
the Corresponding Source as a System Library, need not be included in
conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any tangible
personal property which is normally used for personal, family, or household
purposes, or (2) anything designed or sold for incorporation into a dwelling.
In determining whether a product is a consumer product, doubtful cases shall
be resolved in favor of coverage. For a particular product received by a
particular user, "normally used" refers to a typical or common use of that
class of product, regardless of the status of the particular user or of the
way in which the particular user actually uses, or expects or is expected to
use, the product. A product is a consumer product regardless of whether the
product has substantial commercial, industrial or non-consumer uses, unless
such uses represent the only significant mode of use of the product.
"Installation Information" for a User Product means any methods, procedures,
authorization keys, or other information required to install and execute
modified versions of a covered work in that User Product from a modified
version of its Corresponding Source. The information must suffice to ensure
that the continued functioning of the modified object code is in no case
prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as part of
a transaction in which the right of possession and use of the User Product is
transferred to the recipient in perpetuity or for a fixed term (regardless of
how the transaction is characterized), the Corresponding Source conveyed
under this section must be accompanied by the Installation Information. But
this requirement does not apply if neither you nor any third party retains
the ability to install modified object code on the User Product (for example,
the work has been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates for
a work that has been modified or installed by the recipient, or for the User
Product in which it has been modified or installed. Access to a network may
be denied when the modification itself materially and adversely affects the
operation of the network or violates the rules and protocols for
communication across the network.
Corresponding Source conveyed, and Installation Information provided, in
accord with this section must be in a format that is publicly documented (and
with an implementation available to the public in source code form), and must
require no special password or key for unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this License
by making exceptions from one or more of its conditions. Additional
permissions that are applicable to the entire Program shall be treated as
though they were included in this License, to the extent that they are valid
under applicable law. If additional permissions apply only to part of the
Program, that part may be used separately under those permissions, but the
entire Program remains governed by this License without regard to the
additional permissions.
When you convey a copy of a covered work, you may at your option remove any
additional permissions from that copy, or from any part of it. (Additional
permissions may be written to require their own removal in certain cases when
you modify the work.) You may place additional permissions on material, added
by you to a covered work, for which you have or can give appropriate
copyright permission.
Notwithstanding any other provision of this License, for material you add to
a covered work, you may (if authorized by the copyright holders of that
material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms
of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author
attributions in that material or in the Appropriate Legal Notices displayed
by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in reasonable
ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some trade
names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by
anyone who conveys the material (or modified versions of it) with contractual
assumptions of liability to the recipient, for any liability that these
contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is governed
by this License along with a term that is a further restriction, you may
remove that term. If a license document contains a further restriction but
permits relicensing or conveying under this License, you may add to a covered
work material governed by the terms of that license document, provided that
the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must
place, in the relevant source files, a statement of the additional terms that
apply to those files, or a notice indicating where to find the applicable
terms.
Additional terms, permissive or non-permissive, may be stated in the form of
a separately written license, or stated as exceptions; the above requirements
apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided
under this License. Any attempt otherwise to propagate or modify it is void,
and will automatically terminate your rights under this License (including
any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a
particular copyright holder is reinstated (a) provisionally, unless and until
the copyright holder explicitly and finally terminates your license, and (b)
permanently, if the copyright holder fails to notify you of the violation by
some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated
permanently if the copyright holder notifies you of the violation by some
reasonable means, this is the first time you have received notice of
violation of this License (for any work) from that copyright holder, and you
cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses
of parties who have received copies or rights from you under this License. If
your rights have been terminated and not permanently reinstated, you do not
qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy
of the Program. Ancillary propagation of a covered work occurring solely as a
consequence of using peer-to-peer transmission to receive a copy likewise
does not require acceptance. However, nothing other than this License grants
you permission to propagate or modify any covered work. These actions
infringe copyright if you do not accept this License. Therefore, by modifying
or propagating a covered work, you indicate your acceptance of this License
to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a
license from the original licensors, to run, modify and propagate that work,
subject to this License. You are not responsible for enforcing compliance by
third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered work
results from an entity transaction, each party to that transaction who
receives a copy of the work also receives whatever licenses to the work the
party's predecessor in interest had or could give under the previous
paragraph, plus a right to possession of the Corresponding Source of the work
from the predecessor in interest, if the predecessor has it or can get it
with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights
granted or affirmed under this License. For example, you may not impose a
license fee, royalty, or other charge for exercise of rights granted under
this License, and you may not initiate litigation (including a cross-claim or
counterclaim in a lawsuit) alleging that any patent claim is infringed by
making, using, selling, offering for sale, or importing the Program or any
portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this License
of the Program or a work on which the Program is based. The work thus
licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims owned or
controlled by the contributor, whether already acquired or hereafter
acquired, that would be infringed by some manner, permitted by this License,
of making, using, or selling its contributor version, but do not include
claims that would be infringed only as a consequence of further modification
of the contributor version. For purposes of this definition, "control"
includes the right to grant patent sublicenses in a manner consistent with
the requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent
license under the contributor's essential patent claims, to make, use, sell,
offer for sale, import and otherwise run, modify and propagate the contents
of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent (such
as an express permission to practice a patent or covenant not to sue for
patent infringement). To "grant" such a patent license to a party means to
make such an agreement or commitment not to enforce a patent against the
party.
If you convey a covered work, knowingly relying on a patent license, and the
Corresponding Source of the work is not available for anyone to copy, free of
charge and under the terms of this License, through a publicly available
network server or other readily accessible means, then you must either (1)
cause the Corresponding Source to be so available, or (2) arrange to deprive
yourself of the benefit of the patent license for this particular work, or
(3) arrange, in a manner consistent with the requirements of this License, to
extend the patent license to downstream recipients. "Knowingly relying" means
you have actual knowledge that, but for the patent license, your conveying
the covered work in a country, or your recipient's use of the covered work in
a country, would infringe one or more identifiable patents in that country
that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement,
you convey, or propagate by procuring conveyance of, a covered work, and
grant a patent license to some of the parties receiving the covered work
authorizing them to use, propagate, modify or convey a specific copy of the
covered work, then the patent license you grant is automatically extended to
all recipients of the covered work and works based on it.
A patent license is "discriminatory" if it does not include within the scope
of its coverage, prohibits the exercise of, or is conditioned on the non-
exercise of one or more of the rights that are specifically granted under
this License. You may not convey a covered work if you are a party to an
arrangement with a third party that is in the business of distributing
software, under which you make payment to the third party based on the extent
of your activity of conveying the work, and under which the third party
grants, to any of the parties who would receive the covered work from you, a
discriminatory patent license (a) in connection with copies of the covered
work conveyed by you (or copies made from those copies), or (b) primarily for
and in connection with specific products or compilations that contain the
covered work, unless you entered into that arrangement, or that patent
license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any
implied license or other defenses to infringement that may otherwise be
available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not excuse
you from the conditions of this License. If you cannot convey a covered work
so as to satisfy simultaneously your obligations under this License and any
other pertinent obligations, then as a consequence you may not convey it at
all. For example, if you agree to terms that obligate you to collect a
royalty for further conveying from those to whom you convey the Program, the
only way you could satisfy both those terms and this License would be to
refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have permission to
link or combine any covered work with a work licensed under version 3 of the
GNU Affero General Public License into a single combined work, and to convey
the resulting work. The terms of this License will continue to apply to the
part which is the covered work, but the special requirements of the GNU
Affero General Public License, section 13, concerning interaction through a
network will apply to the combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the
GNU General Public License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to address
new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies that a certain numbered version of the GNU General Public License
"or any later version" applies to it, you have the option of following the
terms and conditions either of that numbered version or of any later version
published by the Free Software Foundation. If the Program does not specify a
version number of the GNU General Public License, you may choose any version
ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the
GNU General Public License can be used, that proxy's public statement of
acceptance of a version permanently authorizes you to choose that version for
the Program.
Later license versions may give you additional or different permissions.
However, no additional obligations are imposed on any author or copyright
holder as a result of your choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR
A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above
cannot be given local legal effect according to their terms, reviewing courts
shall apply local law that most closely approximates an absolute waiver of
all civil liability in connection with the Program, unless a warranty or
assumption of liability accompanies a copy of the Program in return for a
fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible
use to the public, the best way to achieve this is to make it free software
which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach
them to the start of each source file to most effectively state the exclusion
of warranty; and each file should have at least the "copyright" line and a
pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short notice like
this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show
w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands might
be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school, if
any, to sign a "copyright disclaimer" for the program, if necessary. For more
information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General Public
License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
______________
COPYING file last revised: July 22, 2022

386
COPYING.CDDL Normal file
View file

@ -0,0 +1,386 @@
Some source files in the VirtualBox Open Source Edition (OSE) are
dual-licensed under both the GNU General Public License V3.0 (GPL3, see
the COPYING file) and the Common Development and Distribution License,
Version 1.0 (CDDL), as shown below. This applies only to source files
where this dual-licensing is explicitly worded in the file's header.
---
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0
1. Definitions.
1.1. "Contributor" means each individual or entity that creates
or contributes to the creation of Modifications.
1.2. "Contributor Version" means the combination of the Original
Software, prior Modifications used by a Contributor (if any),
and the Modifications made by that particular Contributor.
1.3. "Covered Software" means (a) the Original Software, or (b)
Modifications, or (c) the combination of files containing
Original Software with files containing Modifications, in
each case including portions thereof.
1.4. "Executable" means the Covered Software in any form other
than Source Code.
1.5. "Initial Developer" means the individual or entity that first
makes Original Software available under this License.
1.6. "Larger Work" means a work which combines Covered Software or
portions thereof with code not governed by the terms of this
License.
1.7. "License" means this document.
1.8. "Licensable" means having the right to grant, to the maximum
extent possible, whether at the time of the initial grant or
subsequently acquired, any and all of the rights conveyed
herein.
1.9. "Modifications" means the Source Code and Executable form of
any of the following:
A. Any file that results from an addition to, deletion from or
modification of the contents of a file containing Original
Software or previous Modifications;
B. Any new file that contains any part of the Original
Software or previous Modifications; or
C. Any new file that is contributed or otherwise made
available under the terms of this License.
1.10. "Original Software" means the Source Code and Executable
form of computer software code that is originally released
under this License.
1.11. "Patent Claims" means any patent claim(s), now owned or
hereafter acquired, including without limitation, method,
process, and apparatus claims, in any patent Licensable by
grantor.
1.12. "Source Code" means (a) the common form of computer software
code in which modifications are made and (b) associated
documentation included in or with such code.
1.13. "You" (or "Your") means an individual or a legal entity
exercising rights under, and complying with all of the terms
of, this License. For legal entities, "You" includes any
entity which 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
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.
2. License Grants.
2.1. The Initial Developer Grant.
Conditioned upon Your compliance with Section 3.1 below and
subject to third party intellectual property claims, the Initial
Developer hereby grants You a world-wide, royalty-free,
non-exclusive license:
(a) under intellectual property rights (other than patent or
trademark) Licensable by Initial Developer, to use,
reproduce, modify, display, perform, sublicense and
distribute the Original Software (or portions thereof),
with or without Modifications, and/or as part of a Larger
Work; and
(b) under Patent Claims infringed by the making, using or
selling of Original Software, to make, have made, use,
practice, sell, and offer for sale, and/or otherwise
dispose of the Original Software (or portions thereof).
(c) The licenses granted in Sections 2.1(a) and (b) are
effective on the date Initial Developer first distributes
or otherwise makes the Original Software available to a
third party under the terms of this License.
(d) Notwithstanding Section 2.1(b) above, no patent license is
granted: (1) for code that You delete from the Original
Software, or (2) for infringements caused by: (i) the
modification of the Original Software, or (ii) the
combination of the Original Software with other software
or devices.
2.2. Contributor Grant.
Conditioned upon Your compliance with Section 3.1 below and
subject to third party intellectual property claims, each
Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
(a) under intellectual property rights (other than patent or
trademark) Licensable by Contributor to use, reproduce,
modify, display, perform, sublicense and distribute the
Modifications created by such Contributor (or portions
thereof), either on an unmodified basis, with other
Modifications, as Covered Software and/or as part of a
Larger Work; and
(b) under Patent Claims infringed by the making, using, or
selling of Modifications made by that Contributor either
alone and/or in combination with its Contributor Version
(or portions of such combination), to make, use, sell,
offer for sale, have made, and/or otherwise dispose of:
(1) Modifications made by that Contributor (or portions
thereof); and (2) the combination of Modifications made by
that Contributor with its Contributor Version (or portions
of such combination).
(c) The licenses granted in Sections 2.2(a) and 2.2(b) are
effective on the date Contributor first distributes or
otherwise makes the Modifications available to a third
party.
(d) Notwithstanding Section 2.2(b) above, no patent license is
granted: (1) for any code that Contributor has deleted
from the Contributor Version; (2) for infringements caused
by: (i) third party modifications of Contributor Version,
or (ii) the combination of Modifications made by that
Contributor with other software (except as part of the
Contributor Version) or other devices; or (3) under Patent
Claims infringed by Covered Software in the absence of
Modifications made by that Contributor.
3. Distribution Obligations.
3.1. Availability of Source Code.
Any Covered Software that You distribute or otherwise make
available in Executable form must also be made available in Source
Code form and that Source Code form must be distributed only under
the terms of this License. You must include a copy of this
License with every copy of the Source Code form of the Covered
Software You distribute or otherwise make available. You must
inform recipients of any such Covered Software in Executable form
as to how they can obtain such Covered Software in Source Code
form in a reasonable manner on or through a medium customarily
used for software exchange.
3.2. Modifications.
The Modifications that You create or to which You contribute are
governed by the terms of this License. You represent that You
believe Your Modifications are Your original creation(s) and/or
You have sufficient rights to grant the rights conveyed by this
License.
3.3. Required Notices.
You must include a notice in each of Your Modifications that
identifies You as the Contributor of the Modification. You may
not remove or alter any copyright, patent or trademark notices
contained within the Covered Software, or any notices of licensing
or any descriptive text giving attribution to any Contributor or
the Initial Developer.
3.4. Application of Additional Terms.
You may not offer or impose any terms on any Covered Software in
Source Code form that alters or restricts the applicable version
of this License or the recipients' rights hereunder. You may
choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of
Covered Software. However, you may do so only on Your own behalf,
and not on behalf of the Initial Developer or any Contributor.
You must make it absolutely clear that any such warranty, support,
indemnity or liability obligation is offered by You alone, and You
hereby agree to indemnify the Initial Developer and every
Contributor for any liability incurred by the Initial Developer or
such Contributor as a result of warranty, support, indemnity or
liability terms You offer.
3.5. Distribution of Executable Versions.
You may distribute the Executable form of the Covered Software
under the terms of this License or under the terms of a license of
Your choice, which may contain terms different from this License,
provided that You are in compliance with the terms of this License
and that the license for the Executable form does not attempt to
limit or alter the recipient's rights in the Source Code form from
the rights set forth in this License. If You distribute the
Covered Software in Executable form under a different license, You
must make it absolutely clear that any terms which differ from
this License are offered by You alone, not by the Initial
Developer or Contributor. You hereby agree to indemnify the
Initial Developer and every Contributor for any liability incurred
by the Initial Developer or such Contributor as a result of any
such terms You offer.
3.6. Larger Works.
You may create a Larger Work by combining Covered Software with
other code not governed by the terms of this License and
distribute the Larger Work as a single product. In such a case,
You must make sure the requirements of this License are fulfilled
for the Covered Software.
4. Versions of the License.
4.1. New Versions.
Sun Microsystems, Inc. is the initial license steward and may
publish revised and/or new versions of this License from time to
time. Each version will be given a distinguishing version number.
Except as provided in Section 4.3, no one other than the license
steward has the right to modify this License.
4.2. Effect of New Versions.
You may always continue to use, distribute or otherwise make the
Covered Software available under the terms of the version of the
License under which You originally received the Covered Software.
If the Initial Developer includes a notice in the Original
Software prohibiting it from being distributed or otherwise made
available under any subsequent version of the License, You must
distribute and make the Covered Software available under the terms
of the version of the License under which You originally received
the Covered Software. Otherwise, You may also choose to use,
distribute or otherwise make the Covered Software available under
the terms of any subsequent version of the License published by
the license steward.
4.3. Modified Versions.
When You are an Initial Developer and You want to create a new
license for Your Original Software, You may create and use a
modified version of this License if You: (a) rename the license
and remove any references to the name of the license steward
(except to note that the license differs from this License); and
(b) otherwise make it clear that the license contains terms which
differ from this License.
5. DISCLAIMER OF WARRANTY.
COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY
NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
DISCLAIMER.
6. TERMINATION.
6.1. This License and the rights granted hereunder will terminate
automatically if You fail to comply with terms herein and fail to
cure such breach within 30 days of becoming aware of the breach.
Provisions which, by their nature, must remain in effect beyond
the termination of this License shall survive.
6.2. If You assert a patent infringement claim (excluding
declaratory judgment actions) against Initial Developer or a
Contributor (the Initial Developer or Contributor against whom You
assert such claim is referred to as "Participant") alleging that
the Participant Software (meaning the Contributor Version where
the Participant is a Contributor or the Original Software where
the Participant is the Initial Developer) directly or indirectly
infringes any patent, then any and all rights granted directly or
indirectly to You by such Participant, the Initial Developer (if
the Initial Developer is not the Participant) and all Contributors
under Sections 2.1 and/or 2.2 of this License shall, upon 60 days
notice from Participant terminate prospectively and automatically
at the expiration of such 60 day notice period, unless if within
such 60 day period You withdraw Your claim with respect to the
Participant Software against such Participant either unilaterally
or pursuant to a written agreement with Participant.
6.3. In the event of termination under Sections 6.1 or 6.2 above,
all end user licenses that have been validly granted by You or any
distributor hereunder prior to termination (excluding licenses
granted to You by any distributor) shall survive termination.
7. LIMITATION OF LIABILITY.
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL 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 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.
8. U.S. GOVERNMENT END USERS.
The Covered Software is a "commercial item," as that term is
defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
computer software" (as that term is defined at 48
C.F.R. 252.227-7014(a)(1)) and "commercial computer software
documentation" as such terms are used in 48 C.F.R. 12.212
(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48
C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all
U.S. Government End Users acquire Covered Software with only those
rights set forth herein. This U.S. Government Rights clause is in
lieu of, and supersedes, any other FAR, DFAR, or other clause or
provision that addresses Government rights in computer software
under this License.
9. MISCELLANEOUS.
This License represents the complete agreement concerning subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. This License shall be governed
by the law of the jurisdiction specified in a notice contained
within the Original Software (except to the extent applicable law,
if any, provides otherwise), excluding such jurisdiction's
conflict-of-law provisions. Any litigation relating to this
License shall be subject to the jurisdiction of the courts located
in the jurisdiction and venue specified in a notice contained
within the Original Software, with the losing party responsible
for costs, including, without limitation, court costs and
reasonable attorneys' fees and expenses. The application of the
United Nations Convention on Contracts for the International Sale
of Goods is expressly excluded. Any law or regulation which
provides that the language of a contract shall be construed
against the drafter shall not apply to this License. You agree
that You alone are responsible for compliance with the United
States export administration regulations (and the export control
laws and regulation of any other countries) when You use,
distribute or otherwise make available any Covered Software.
10. RESPONSIBILITY FOR CLAIMS.
As between Initial Developer and the Contributors, each party is
responsible for claims and damages arising, directly or
indirectly, out of its utilization of rights under this License
and You agree to work with Initial Developer and Contributors to
distribute such responsibility on an equitable basis. Nothing
herein is intended or shall be deemed to constitute any admission
of liability.
--------------------------------------------------------------------
NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND
DISTRIBUTION LICENSE (CDDL)
For Covered Software in this distribution, this License shall
be governed by the laws of the State of California (excluding
conflict-of-law provisions).
Any litigation relating to this License shall be subject to the
jurisdiction of the Federal Courts of the Northern District of
California and the state courts of the State of California, with
venue lying in Santa Clara County, California.

9151
Config.kmk Normal file

File diff suppressed because it is too large Load diff

963
Doxyfile.Core Normal file
View file

@ -0,0 +1,963 @@
# Doxyfile 1.9.6
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = VBox
PROJECT_NUMBER =
PROJECT_BRIEF =
PROJECT_LOGO =
# OUTPUT_DIRECTORY = later
CREATE_SUBDIRS = NO
CREATE_SUBDIRS_LEVEL = 8
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
JAVADOC_BANNER = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
PYTHON_DOCSTRING = YES
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
ALIASES = \
"note=@remark" \
"thread=@par Thread Context:^^" \
"vmstate=@par VM State In:^^" \
"vmstateto=@par VM State Out:^^"
# Input / output paragraphs.
ALIASES += \
"output=@par Output:^^" \
"input=@par Input:^^"
# Interface method implementation macros.
ALIASES += \
interface_method_impl{2}="Implements \1 method \link \1::\2 \2 \endlink @copydoc \1::\2 "
ALIASES += \
interface_method_impl{3}="\3. \
\
Implements \1 method \link \1::\2 \2 \endlink @copydoc \1::\2 "
# Callback method implementation macros.
ALIASES += \
callback_method_impl{2}="\2. \
\
Implements the callback \link \1 \1 \endlink "
ALIASES += \
callback_method_impl{1}="Implements the callback \link \1 \1 \endlink @copydoc \1 "
# The following is for Global Configuration options.
ALIASES += \
gcfgm{6}="\xrefitem lst_gcfgm \"Global VM Config: \1\" \"Global Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
<b>Unit:</b> \6 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
<b>Default:</b> \5 <br> \
"
ALIASES += \
gcfgm{5}="\xrefitem lst_gcfgm \"Global VM Config: \1\" \"Global Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
<b>Default:</b> \5 <br> \
"
ALIASES += \
gcfgm{4}="\xrefitem lst_gcfgm \"Global VM Config: \1\" \"Global Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
"
ALIASES += \
gcfgm{3}="\xrefitem lst_gcfgm \"Global VM Config: \1\" \"Global Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
<b>Default:</b> \3 <br> \
"
ALIASES += \
gcfgm{2}="\xrefitem lst_gcfgm \"Global VM Config: \1\" \"Global Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
"
# The following is for per-VM Configuration options.
ALIASES += \
cfgm{6}="\xrefitem lst_cfgm \"VM Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
<b>Unit:</b> \6 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
<b>Default:</b> \5 <br> \
"
ALIASES += \
cfgm{5}="\xrefitem lst_cfgm \"VM Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
<b>Default:</b> \5 <br> \
"
ALIASES += \
cfgm{4}="\xrefitem lst_cfgm \"VM Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
"
ALIASES += \
cfgm{3}="\xrefitem lst_cfgm \"VM Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
<b>Default:</b> \3 <br> \
"
ALIASES += \
cfgm{2}="\xrefitem lst_cfgm \"VM Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> \1 <br> \
<b>Type:</b> \2 <br> \
"
# The following is for device configuration options.
ALIASES += \
devcfgm{7}="\xrefitem lst_cfgm \"Device Config: \1/\2\" \"VM Configuration Values\" \
<b>Name:</b> /Devices/\1/#/Config/\2 <br> \
<b>Type:</b> \3 <br> \
<b>Unit:</b> \7 <br> \
<b>Min:</b> \4 <br> \
<b>Max:</b> \5 <br> \
<b>Default:</b> \6 <br> \
"
ALIASES += \
devcfgm{6}="\xrefitem lst_cfgm \"Device Config: \1/\2\" \"VM Configuration Values\" \
<b>Name:</b> /Devices/\1/#1/Config/\2 <br> \
<b>Type:</b> \3 <br> \
<b>Min:</b> \4 <br> \
<b>Max:</b> \5 <br> \
<b>Default:</b> \6 <br> \
"
ALIASES += \
devcfgm{5}="\xrefitem lst_cfgm \"Device Config: \1/\2\" \"VM Configuration Values\" \
<b>Name:</b> /Devices\1/#1/Config/\2 <br> \
<b>Type:</b> \3 <br> \
<b>Min:</b> \4 <br> \
<b>Max:</b> \5 <br> \
"
ALIASES += \
devcfgm{4}="\xrefitem lst_cfgm \"Device Config: \1/\2\" \"VM Configuration Values\" \
<b>Name:</b> /Devices\1/#1/Config/\2 <br> \
<b>Type:</b> \3 <br> \
<b>Default:</b> \4 <br> \
"
ALIASES += \
devcfgm{3}="\xrefitem lst_cfgm \"Device Config: \1/\2\" \"VM Configuration Values\" \
<b>Name:</b> /Devices\1/#1/Config/\2 <br> \
<b>Type:</b> \3 <br> \
"
# The following is for driver configuration options.
ALIASES += \
drvcfgm{6}="\xrefitem lst_cfgm \"Driver Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [Driver Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
<b>Unit:</b> \6 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
<b>Default:</b> \5 <br> \
"
ALIASES += \
drvcfgm{5}="\xrefitem lst_cfgm \"Driver Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [Driver Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
<b>Default:</b> \5 <br> \
"
ALIASES += \
drvcfgm{4}="\xrefitem lst_cfgm \"Driver Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [Driver Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
"
ALIASES += \
drvcfgm{3}="\xrefitem lst_cfgm \"Driver Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [Driver Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
<b>Default:</b> \3 <br> \
"
ALIASES += \
drvcfgm{2}="\xrefitem lst_cfgm \"Driver Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [Driver Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
"
# The following is for USB device configuration options.
ALIASES += \
usbcfgm{6}="\xrefitem lst_cfgm \"USB Device Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [USB Device Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
<b>Unit:</b> \6 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
<b>Default:</b> \5 <br> \
"
ALIASES += \
usbcfgm{5}="\xrefitem lst_cfgm \"USB Device Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [USB Device Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
<b>Default:</b> \5 <br> \
"
ALIASES += \
usbcfgm{4}="\xrefitem lst_cfgm \"USB Device Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [USB Device Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
<b>Min:</b> \3 <br> \
<b>Max:</b> \4 <br> \
"
ALIASES += \
usbcfgm{3}="\xrefitem lst_cfgm \"USB Device Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [USB Device Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
<b>Default:</b> \3 <br> \
"
ALIASES += \
usbcfgm{2}="\xrefitem lst_cfgm \"USB Device Config: \1\" \"VM Configuration Values\" \
<b>Name:</b> [USB Device Instance]/\1 <br> \
<b>Type:</b> \2 <br> \
"
# UDF spec reference - 1=section, 2=page
ALIASES += udf260{2}="<a href=\"http://www.osta.org/specs/pdf/udf260.pdf#page=\2\">UDF-2.60:\1</a>"
# Generic ECMA spec reference - 1=spec-number 2=section, 3=page
ALIASES += ecma{3}="<a href=\"https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-\1.pdf#page=\3\">ECMA-\1:\2</a>"
# ECMA-167 spec reference - 1=part 2=section, 3=page
ALIASES += ecma167{3}="\ecma{167,Part\1/\2,\3}"
# Internal: 1=doc number; 2=file base name; 3=revision (077); 4=page; 5=doc name; 6=section/table/figure; 7=title
ALIASES += sdm{7}="<a href=\"https://www.intel.com/content/dam/develop/public/us/en/documents/\1-\2.pdf#page=\4\">\5:\6 \"\7\"</a>"
#ALIASES += sdm{7}="<a href=\"https://kib.kiev.ua/x86docs/Intel/SDMs/\1-\3.pdf#page=\4\">\5:\6 \"\7\"</a>"
# Intel Architecture Software Developer Manuals - 1=revision (xxx) 2=page, 3=section/table/figure 4=title
# Note! We can only link to pages not to sections, figures or tables.
ALIASES += sdmv1{3}="\sdm{253665,sdm-vol-1,\1,\2,SDMv1,\3}"
ALIASES += sdmv1{4}="\sdm{253665,sdm-vol-1,\1,\2,SDMv1,\3,\4}"
ALIASES += sdmv2{3}="\sdm{325383,sdm-vol-2abcd,\1,\2,SDMv2,\3}"
ALIASES += sdmv2{4}="\sdm{325383,sdm-vol-2abcd,\1,\2,SDMv2,\3,\4}"
ALIASES += sdmv3{3}="\sdm{325384,sdm-vol-3abcd,\1,\2,SDMv3,\3}"
ALIASES += sdmv3{4}="\sdm{325384,sdm-vol-3abcd,\1,\2,SDMv3,\3,\4}"
ALIASES += sdmv4{3}="\sdm{335592,sdm-vol-4,\1,\2,SDMv4,\3}"
ALIASES += sdmv4{4}="\sdm{335592,sdm-vol-4,\1,\2,SDMv4,\3,\4}"
# For IEM opcode specs.
ALIASES += opbrief=""
ALIASES += opdesc=""
ALIASES += opmnemonic="Mnemonic: "
ALIASES += op1="Operand \#1: "
ALIASES += op2="Operand \#2: "
ALIASES += op3="Operand \#3: "
ALIASES += op4="Operand \#4: "
ALIASES += oppfx="Req.Prefix: "
ALIASES += opmaps="Opcode Maps: "
ALIASES += opcode="Opcode Byte: "
ALIASES += opcodesub="Opcode Sub-Byte: "
ALIASES += openc="Encoding: "
ALIASES += opfltest="EFLAGS Tested: "
ALIASES += opflmodify="EFLAGS Modified: "
ALIASES += opflundef="EFLAGS Undefined: "
ALIASES += opflset="EFLAGS Set: "
ALIASES += opflclear="EFLAGS Cleared: "
ALIASES += ophints="Hints, Flags, ++: "
ALIASES += opdisenum="Disassembler Enum: "
ALIASES += opmincpu="Minimum CPU: "
ALIASES += opcpuid="CPUID: "
ALIASES += opxcpttype="Exception Type: "
ALIASES += opgroup="@ingroup "
ALIASES += opunused="Unused Encoding: "
ALIASES += opinvalid="Invalid Encoding: "
ALIASES += opinvlstyle="Invalid/Unused Encoding Style: "
ALIASES += optest="Testcase: "
ALIASES += opcopytests="Testcase: Same as "
ALIASES += opstats="IEM Stats:"
ALIASES += opfunction="IEM Function"
ALIASES += opdone="-------------------------"
# bugref - xTracker bug reference, takes one to four bug numbers.
ALIASES += bugref{1}="https://xtracker.innotek.de/index.php?bug=\1"
ALIASES += bugref{2}="https://xtracker.innotek.de/index.php?bug=\1, \
https://xtracker.innotek.de/index.php?bug=\2"
ALIASES += bugref{3}="https://xtracker.innotek.de/index.php?bug=\1, \
https://xtracker.innotek.de/index.php?bug=\2, \
https://xtracker.innotek.de/index.php?bug=\3"
ALIASES += bugref{4}="https://xtracker.innotek.de/index.php?bug=\1, \
https://xtracker.innotek.de/index.php?bug=\2, \
https://xtracker.innotek.de/index.php?bug=\3, \
https://xtracker.innotek.de/index.php?bug=\4"
# ticketref - Track ticket reference, takes one to four ticket numbers.
ALIASES += ticketref{1}="http://www.virtualbox.org/ticket/\1"
ALIASES += ticketref{2}="http://www.virtualbox.org/ticket/\1, \
http://www.virtualbox.org/ticket/\2"
ALIASES += ticketref{3}="http://www.virtualbox.org/ticket/\1, \
http://www.virtualbox.org/ticket/\2, \
http://www.virtualbox.org/ticket/\3"
ALIASES += ticketref{4}="http://www.virtualbox.org/ticket/\1, \
http://www.virtualbox.org/ticket/\2, \
http://www.virtualbox.org/ticket/\3, \
http://www.virtualbox.org/ticket/\4"
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
OPTIMIZE_OUTPUT_SLICE = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
TOC_INCLUDE_HEADINGS = 5
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
NUM_PROC_THREADS = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PRIV_VIRTUAL = NO
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
RESOLVE_UNNAMED_PARAMS = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_HEADERFILE = YES
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
#---------------------------------------------------------------------------
# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = YES
WARNINGS = YES
##Later: WARN_IF_UNDOCUMENTED = YES
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_NO_PARAMDOC = NO
WARN_IF_UNDOC_ENUM_VAL = NO
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LINE_FORMAT = "at line $line of file $file"
#WARN_LOGFILE = later
#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------
# INPUT = later
INPUT_ENCODING = UTF-8
INPUT_FILE_ENCODING =
FILE_PATTERNS =
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH = \
doc \
doc/tg/Networking-diagrams \
doc/tg/USB-diagrams \
doc/tg/diagrams \
doc/VMM
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
FORTRAN_COMMENT_AFTER = 72
#---------------------------------------------------------------------------
# Configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES =
HTML_COLORSTYLE = AUTO_LIGHT
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
HTML_DYNAMIC_MENUS = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_FEEDURL =
DOCSET_BUNDLE_ID = org.virtualbox.core
DOCSET_PUBLISHER_ID = org.virtualbox
DOCSET_PUBLISHER_NAME = virtualbox
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.virtualbox.core
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
GENERATE_TREEVIEW = NO
FULL_SIDEBAR = NO
ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
OBFUSCATE_EMAILS = YES
HTML_FORMULA_FORMAT = png
FORMULA_FONTSIZE = 10
FORMULA_MACROFILE =
USE_MATHJAX = NO
MATHJAX_VERSION = MathJax_2
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = NO
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
LATEX_MAKEINDEX_CMD = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4
EXTRA_PACKAGES =
LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
LATEX_EMOJI_DIRECTORY =
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_SUBDIR =
MAN_LINKS = NO
#---------------------------------------------------------------------------
# Configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
XML_NS_MEMB_FILE_SCOPE = NO
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
# INCLUDE_PATH = later
# INCLUDE_FILE_PATTERNS = later
PREDEFINED = \
DOXYGEN_RUNNING \
RT_C_DECLS_END \
RT_C_DECLS_BEGIN \
VBOX=1 \
RT_STRICT=1 \
VBOX_STRICT=1 \
__cplusplus=1 \
ARCH_BITS=HC_ARCH_BITS \
R3_ARCH_BITS=HC_ARCH_BITS \
R0_ARCH_BITS=HC_ARCH_BITS \
RTDECL(type)=type \
RTRCDECL(type)=type \
RTR0DECL(type)=type \
RTR3DECL(type)=type \
RTDATADECL(type)=type \
RT_DECL_NTAPI(type)=type \
RT_EXPORT_SYMBOL(name)= \
\
RT_SRC_POS=1 \
RT_SRC_POS_ARGS=SRC_POS \
"RT_SRC_POS_DECL=int SRC_POS" \
"RTLOG_COMMA_SRC_POS_DECL=, int SRC_POS" \
\
"RT_IPRT_FORMAT_ATTR(a,b)=" \
"RT_IPRT_FORMAT_ATTR_MAYBE_NULL(a,b)=" \
RT_NOTHROW_PROTO= \
RT_NOTHROW_DEF= \
RT_NO_THROW_PROTO= \
RT_NO_THROW_DEF= \
RTASN1CONTEXTTAG_IMPL_CURSOR_INLINES(a)= \
\
RT_MSC_PREREQ(a)=0 \
RT_MSC_PREREQ_EX(a,b)=b
# decl and calling conventions.
PREDEFINED += \
DECL_NOTHROW(a_RetType)=a_RetType \
"DECLINLINE(type)=inline type" \
DECL_INLINE_THROW(type)=DECLINLINE(type) \
DECL_FORCE_INLINE(type)=DECLINLINE(type) \
DECL_NO_INLINE(type)=type \
DECL_NO_RETURN(type)=type \
DECLCALLBACK(type)=type \
"DECLCALLBACKTYPE(type,name,args)=type name args" \
"DECLCALLBACKTYPE_EX(type,cconv,name,args)=type name args" \
"DECLCALLBACKPTR(type,name,args)=type (* name) args" \
"DECLCALLBACKPTR_EX(type,cconv,name,args)=type (* name) args" \
"DECLCALLBACKMEMBER(type,name,args)=type (* name) args" \
"DECLCALLBACKMEMBER_EX(type,cconv,name,args)=type (* name) args" \
"DECLRCCALLBACKMEMBER(type,name,args)=type (* name) args" \
"DECLR3CALLBACKMEMBER(type,name,args)=type (* name) args" \
"DECLR0CALLBACKMEMBER(type,name,args)=type (* name) args" \
"DECLRGCALLBACKMEMBER(type,name,args)=type (* name) args" \
DECLEXPORT(type)=type \
DECL_EXPORT_NOTHROW(type)=type \
DECLIMPORT(type)=type \
DECL_IMPORT_NOTHROW(type)=type \
DECLHIDDEN(type)=type \
DECL_HIDDEN_NOTHROW(type)=type \
DECL_HIDDEN_ONLY(type)=type \
DECL_HIDDEN_THROW(type)=type \
DECL_HIDDEN_DATA(type)=type \
DECL_HIDDEN_CONST(type)=type \
DECL_HIDDEN_CALLBACK(type)=type \
DECLASM(type)=type \
RT_ASM_DECL_PRAGMA_WATCOM(type)=type \
RT_ASM_DECL_PRAGMA_WATCOM_386(type)=type \
DECLNORETURN(type)=type \
DECL_CHECK_RETURN(type)=type \
DECL_CHECK_RETURN_NOT_R3(type)=type \
RTCALL= \
\
VBOXCALL= \
APICBOTHCBDECL(type)=type \
DBGDECL(type)=type \
DECLR0VBGL(type)=type \
DECLSPEC_HIDDEN= \
DECLVBGL(type)=type \
DISDECL(type)=type \
GMMR0DECL(type)=type \
GMMR3DECL(type)=type \
GVMMR0DECL(type)=type \
INTNETR0DECL(type)=type \
INTNETR3DECL(type)=type \
PDMBOTHCBDECL(type)=type \
SUPDECL(type)=type \
SUPR0DECL(type)=type \
SUPR3DECL(type)=type \
SUPRCDECL(type)=type \
USBLIB_DECL(type)=type \
VBGLR3DECL(type)=type \
VBOX_DND_FN_DECL_LOG(x)=x \
VBOXDDU_DECL(type)=type \
VMM_INT_DECL(type)=type \
VMMDECL(type)=type \
VMMR0_INT_DECL(type)=type \
VMMR0DECL(type)=type \
VMMR3_INT_DECL(type)=type \
VMMR3DECL(type)=type \
VMMRC_INT_DECL(type)=type \
VMMRCDECL(type)=type \
VMMRZ_INT_DECL(type)=type \
VMMRZDECL(type)=type \
VMSVGA3DCOCOA_DECL(type)=type \
VBOX_LISTENER_DECLARE(a)= \
VBOX_WITH_RAW_MODE_NOT_R0 \
\
"PGM_BTH_DECL(type,name)=type pgmBth##name" \
"PGM_GST_DECL(type,name)=type pgmGst##name" \
"PGM_SHW_DECL(type,name)=type pgmShw##name"
# BS3Kit
PREDEFINED += \
BS3_FAR= \
BS3_NEAR= \
BS3_FAR_DATA= \
BS3_DECL(a_Type)=a_Type \
BS3_DECL_NEAR(a_Type)=a_Type \
BS3_DECL_FAR(a_Type)=a_Type \
BS3_DECL_CALLBACK(a_Type)=a_Type \
BS3_DECL_NEAR_CALLBACK(a_Type)=a_Type \
BS3_CMN_NM(a_Name)=a_Name \
BS3_CMN_FAR_NM(a_Name)=a_Name \
BS3_CMN_FN_NM(a_Name)=a_Name \
BS3_DATA_NM(a_Name)=a_Name \
TMPL_NM(a_Name)=a_Name##_mmm \
TMPL_FAR_NM(a_Name)=a_Name##_mmm \
"BS3_CMN_PROTO_STUB(a_RetType,a_Name,a_Params)=a_RetType a_Name a_Params" \
"BS3_CMN_PROTO_NOSB(a_RetType,a_Name,a_Params)=a_RetType a_Name a_Params" \
"BS3_CMN_PROTO_FARSTUB(a_cbParam16, a_RetType, a_Name, a_Params)=a_RetType a_Name a_Params" \
"BS3_CMN_DEF(a_RetType,a_Name,a_Params)=a_RetType a_Name a_Params" \
"BS3_MODE_PROTO_STUB(a_RetType,a_Name,a_Params)=a_RetType a_Name##_mmm a_Params" \
"BS3_MODE_PROTO_NOSB(a_RetType,a_Name,a_Params)=a_RetType a_Name##_mmm a_Params" \
"BS3_MODE_DEF(a_RetType,a_Name,a_Params)=a_RetType a_Name##_mmm a_Params" \
"BS3_PTR_UNION_TEMPLATE(a_BaseName,a_Modifiers)=typedef union a_BaseName { a_Modifiers void *pv } a_BaseName, * P##a_BaseName; }" \
"BS3_XPTR_MEMBER(a_Type,a_Name)=a_Type * a_Name" \
# templated fun.
PREDEFINED += \
"PGM_BTH_DECL(type,name)=type pgmBth##name" \
"PGM_SHW_DECL(type,name)=type pgmShw##name" \
"PGM_GST_DECL(type,name)=type pgmGst##name" \
"PGM_BTH_NAME(name)=pgmBth##name" \
"PGM_SHW_NAME(name)=pgmShw##name" \
"PGM_GST_NAME(name)=pgmGst##name" \
PGM_ALL_CB_DECL(type)=type \
PGM_ALL_CB2_DECL(type)=type \
PGMPHYS_DATATYPE=uintXX_t \
"PGMPHYSFN_READNAME(a,b,c)=PGMR3PhysReadUxx(a,b,c)" \
"PGMPHYSFN_WRITENAME(a,b,c,d)=PGMR3PhysWriteUxx(a,b,c,d)" \
# context hacks.
PREDEFINED += RCPTRTYPE(RCType)=RCType
PREDEFINED += R3PTRTYPE(R3Type)=R3Type
PREDEFINED += R0PTRTYPE(R0Type)=R0Type
PREDEFINED += HCPTRTYPE(HCType)=HCType
PREDEFINED += R3R0PTRTYPE(R3R0Type)=R3R0Type
PREDEFINED += \
"CTX_SUFF(var)=var##R3" \
"CTX_SUFF_Z(var)=var##RZ" \
"CTX_MID(first,last)=firstr##R3##last" \
"CTX_MID_Z(first,last)=firstr##RZ##last" \
# Compile assertion hacks.
PREDEFINED += \
"AssertCompileNS(expr)=static_assert(expr)" \
"AssertCompile(expr)=static_assert(expr)" \
"AssertCompileSize(type, size)=static_assert(true)" \
"AssertCompileSizeAlignment(type, align)=static_assert(true)" \
"AssertCompileMemberAlignment(type, member, align)=static_assert(true)" \
"AssertCompileMemberOffset(type, member, off)=static_assert(true)" \
"AssertCompile2MemberOffsets(type, member1, member2)=static_assert(true)" \
"AssertCompileAdjacentMembers(type, member1, member2)=static_assert(true)" \
"AssertCompileMembersAtSameOffset(type1, member1, type2, member2)=static_assert(true)" \
"AssertCompileMemberSize(type, member, size)=static_assert(true)" \
"AssertCompileMemberSizeAlignment(type, member, align)=static_assert(true)" \
"AssertCompileMembersSameSize(type1, member1, type2, member2)=static_assert(true)" \
"AssertCompileMembersSameSizeAndOffset(type1, member1, type2, member2)=static_assert(true)"
# COM/XPCOM hacks.
PREDEFINED += \
STDMETHODIMP=HRESULT \
IFACEMETHODIMP=HRESULT \
IFACEMETHODIMP_(t)=t \
"COMGETTER(n)=get_##n" \
"COMSETTER(n)=set_##n" \
"ComSafeArrayIn(aType,aArg)=aType *aArg" \
"ComSafeArrayOut(aType, aArg)=aType **aArg" \
DECLARE_CLS_COPY_CTOR_ASSIGN_NOOP(a)= \
DECLARE_NOT_AGGREGATABLE(a)= \
DECLARE_CLASSFACTORY()= \
DECLARE_CLASSFACTORY_SINGLETON(a)= \
"VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(a,b)=" \
"DECLARE_TRANSLATE_METHODS(a)=static const char *tr(const char *aSourceText, const char *aComment = NULL, const int aNum = -1);" \
"DECLARE_EMPTY_CTOR_DTOR(a)=a(); virtual ~a();" \
"DECLARE_COMMON_CLASS_METHODS(a)=a(); virtual ~a(); static const char *tr(const char *aSourceText, const char *aComment = NULL, const int aNum = -1);"
# COM hacks from From http://www.stack.nl/~dimitri/doxygen/preprocessing.html
PREDEFINED += \
"DECLARE_INTERFACE(name)=class name" \
"STDMETHOD_(result,name)=virtual result name" \
"PURE= = 0" \
THIS_= \
THIS= \
NTSTATUS=long \
LONG=long \
NTAPI= \
WINAPI= \
DECLARE_REGISTRY_RESOURCEID=// \
DECLARE_PROTECT_FINAL_CONSTRUCT=// \
"DECLARE_AGGREGATABLE(Class)= " \
"DECLARE_REGISTRY_RESOURCEID(Id)= " \
DECLARE_MESSAGE_MAP= \
BEGIN_MESSAGE_MAP=/* \
END_MESSAGE_MAP=*/// \
BEGIN_COM_MAP=/* \
END_COM_MAP=*/// \
BEGIN_PROP_MAP=/* \
END_PROP_MAP=*/// \
BEGIN_MSG_MAP=/* \
END_MSG_MAP=*/// \
BEGIN_PROPERTY_MAP=/* \
END_PROPERTY_MAP=*/// \
BEGIN_OBJECT_MAP=/* \
END_OBJECT_MAP()=*/// \
DECLARE_VIEW_STATUS=// \
"STDMETHOD(a)=HRESULT a" \
"ATL_NO_VTABLE= " \
"__declspec(a)= " \
BEGIN_CONNECTION_POINT_MAP=/* \
END_CONNECTION_POINT_MAP=*/// \
"DECLARE_DYNAMIC(class)= " \
"IMPLEMENT_DYNAMIC(class1, class2)= " \
"DECLARE_DYNCREATE(class)= " \
"IMPLEMENT_DYNCREATE(class1, class2)= " \
"IMPLEMENT_SERIAL(class1, class2, class3)= " \
"DECLARE_MESSAGE_MAP()= " \
TRY=try \
"CATCH_ALL(e)= catch(...)" \
END_CATCH_ALL= \
"THROW_LAST()= throw"\
"RUNTIME_CLASS(class)=class" \
"MAKEINTRESOURCE(nId)=nId" \
"IMPLEMENT_REGISTER(v, w, x, y, z)= " \
"ASSERT(x)=assert(x)" \
"ASSERT_VALID(x)=assert(x)" \
"TRACE0(x)=printf(x)" \
"OS_ERR(A,B)={ #A, B }" \
__cplusplus \
"DECLARE_OLECREATE(class)= " \
"BEGIN_DISPATCH_MAP(class1, class2)= " \
"BEGIN_INTERFACE_MAP(class1, class2)= " \
"INTERFACE_PART(class, id, name)= " \
"END_INTERFACE_MAP()=" \
"DISP_FUNCTION(class, name, function, result, id)=" \
"END_DISPATCH_MAP()=" \
"IMPLEMENT_OLECREATE2(class, name, id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11)=" \
RT_GCC_EXTENSION= \
"CPUM_STRUCT_NM(n)=" \
"CPUM_UNION_NM(n)=" \
"DECL_NO_RETURN(type)=type" \
VBOX_WITH_HGCM
PREDEFINED += \
"IEM_DECL_IMPL_DEF(a_RetType, a_Name, a_ArgList)=a_RetType a_Name a_ArgList" \
"IEM_DECL_IMPL_TYPE(a_RetType, a_Name, a_ArgList)=a_RetType (a_Name) a_ArgList" \
\
"FNIEMOP_DEF(a_Name)=int a_Name()" \
"FNIEMOP_DEF_1(a_Name, a_Type0, a_Name0)=int a_Name(a_Type0 a_Name0)" \
"FNIEMOP_DEF_2(a_Name, a_Type0, a_Name0, a_Type1, a_Name1)=int a_Name(a_Type0 a_Name0, a_Type1 a_Name1)" \
"FNIEMOPRM_DEF(a_Name)=int a_Name(uint8_t bRm)" \
\
"IEM_CIMPL_DEF_0(a_Name)=int a_Name()" \
"IEM_CIMPL_TYPE_0(a_Name)=int (a_Name)()" \
"IEM_CIMPL_CALL_0(a_pfn)=a_pfn()" \
"IEM_CIMPL_DEF_1(a_Name, a_Type0, a_Arg0)=int a_Name(a_Type0 a_Arg0)" \
"IEM_CIMPL_TYPE_1(a_Name, a_Type0, a_Arg0)=int (a_Name)(a_Type0 a_Arg0)" \
"IEM_CIMPL_CALL_1(a_pfn, a0)=a_pfn(a0)" \
"IEM_CIMPL_DEF_2(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1)=int a_Name(a_Type0 a_Arg0, a_Type1 a_Arg1)" \
"IEM_CIMPL_TYPE_2(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1)=int (a_Name)(a_Type0 a_Arg0, a_Type1 a_Arg1)" \
"IEM_CIMPL_CALL_2(a_pfn, a0, a1)=a_pfn(a0, a1)" \
"IEM_CIMPL_DEF_3(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1, a_Type2, a_Arg2)=int a_Name(a_Type0 a_Arg0, a_Type1 a_Arg1, a_Type2 a_Arg2)" \
"IEM_CIMPL_TYPE_3(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1, a_Type2, a_Arg2)=int (a_Name)(a_Type0 a_Arg0, a_Type1 a_Arg1, a_Type2 a_Arg2)" \
"IEM_CIMPL_CALL_3(a_pfn, a0, a1, a2)=a_pfn(a0, a1, a2)" \
"IEM_CIMPL_DEF_4(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1, a_Type2, a_Arg2, a_Type3, a_Arg3)=int a_Name(a_Type0 a_Arg0, a_Type1 a_Arg1, a_Type2 a_Arg2, a_Type3 a_Arg3)" \
"IEM_CIMPL_TYPE_4(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1, a_Type2, a_Arg2, a_Type3, a_Arg3)=int (a_Name)(a_Type0 a_Arg0, a_Type1 a_Arg1, a_Type2 a_Arg2, a_Type3 a_Arg3)" \
"IEM_CIMPL_CALL_4(a_pfn, a0, a1, a2, a3)=a_pfn(a0, a1, a2, a3)" \
"IEM_CIMPL_DEF_5(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1, a_Type2, a_Arg2, a_Type3, a_Arg3, a_Type4, a_Arg4)=int a_Name(a_Type0 a_Arg0, a_Type1 a_Arg1, a_Type2 a_Arg2, a_Type3 a_Arg3, a_Type4 a_Arg4)" \
"IEM_CIMPL_TYPE_5(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1, a_Type2, a_Arg2, a_Type3, a_Arg3, a_Type4, a_Arg4)=int (a_Name)(a_Type0 a_Arg0, a_Type1 a_Arg1, a_Type2 a_Arg2, a_Type3 a_Arg3, a_Type4 a_Arg4)" \
"IEM_CIMPL_CALL_5(a_pfn, a0, a1, a2, a3, a4)=a_pfn(a0, a1, a2, a3, a4)" \
"IEM_CIMPL_DEF_6(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1, a_Type2, a_Arg2, a_Type3, a_Arg3, a_Type4, a_Arg4, a_Type5, a_Arg5)=int a_Name(a_Type0 a_Arg0, a_Type1 a_Arg1, a_Type2 a_Arg2, a_Type3 a_Arg3, a_Type4 a_Arg4, a_Type5 a_Arg5)" \
"IEM_CIMPL_TYPE_6(a_Name, a_Type0, a_Arg0, a_Type1, a_Arg1, a_Type2, a_Arg2, a_Type3, a_Arg3, a_Type4, a_Arg4, a_Type5, a_Arg5)=int (a_Name)(a_Type0 a_Arg0, a_Type1 a_Arg1, a_Type2 a_Arg2, a_Type3 a_Arg3, a_Type4 a_Arg4, a_Type5 a_Arg5)" \
"IEM_CIMPL_CALL_6(a_pfn, a0, a1, a2, a3, a4, a5)=a_pfn(a0, a1, a2, a3, a4, a5)" \
EXPAND_AS_DEFINED = \
ARCH_BITS \
R3_ARCH_BITS \
R0_ARCH_BITS \
GC_ARCH_BITS \
HC_ARCH_BITS \
\
DECLASMTYPE \
DECL_INLINE_NOTHROW \
CTXSUFF \
OTHERCTXSUFF \
CTXMID \
OTHERCTXMID \
\
INPTR \
COMSETTER \
COMGETTER \
STDMETHOD \
STDMETHOD_ \
STDMETHODIMP \
IFACEMETHODIMP \
\
VD_BACKEND_CALLBACK_GET_COMMENT_DEF_NOT_SUPPORTED \
VD_BACKEND_CALLBACK_SET_COMMENT_DEF_NOT_SUPPORTED \
VD_BACKEND_CALLBACK_GET_UUID_DEF_NOT_SUPPORTED \
VD_BACKEND_CALLBACK_SET_UUID_DEF_NOT_SUPPORTED \
\
IOM_MMIO_STATS_COMMA_DECL \
IOM_MMIO_STATS_COMMA_ARG \
SUP_HARDENED_SUID \
\
VTABLE_ENTRY \
VTABLE_RESERVED
SKIP_FUNCTION_MACROS = NO
#---------------------------------------------------------------------------
# Configuration options related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
DIA_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
DOT_NUM_THREADS = 0
DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10"
DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10"
DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4"
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = YES
UML_LIMIT_NUM_FIELDS = 10
DOT_UML_DETAILS = YES
DOT_WRAP_THRESHOLD = 17
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DIR_GRAPH_MAX_DEPTH = 1
DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH =
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES

61
Maintenance.kmk Normal file
View file

@ -0,0 +1,61 @@
# $Id: Maintenance.kmk $
## @file
# Maintenance makefile.
#
#
# Copyright (C) 2006-2023 Oracle and/or its affiliates.
#
# This file is part of VirtualBox base platform packages, as
# available from https://www.virtualbox.org.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, in version 3 of the
# License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses>.
#
# SPDX-License-Identifier: GPL-3.0-only
#
#
# By default, only show the maintence help info.
#
PASS_MAINTHELP := Maintence Help
PASS_MAINTHELP_trgs := show-maintence-help
PASS_MAINTHELP_vars :=
PASS_MAINTHELP_pass := maintence-help
override DEFAULT_PASSES := MAINTHELP
show-maintence-help:
@$(ECHO) ""
@$(ECHO) "up update - Update svn and fetch tools."
@$(ECHO) "up2 update2 - Update svn and fetch tools, ignore externals (kBuild)."
@$(ECHO) "incs - Update autogenerated assembly include files in include/."
@$(ECHO) "snapshot-puel - Create a source tarball of the PUEL (closed) sources."
@$(ECHO) "docs docs.core - run doxygen on core code."
@$(ECHO) ""
@$(ECHO) "Build aliases:"
@$(ECHO) " both-types-archs both-archs-types - Do both 32-bit and 64-bit builds in both debug and release variants."
@$(ECHO) " both-x86-amd64 both-amd64-x86 - Do both 32-bit and 64-bit builds for the current build type."
@$(ECHO) " both-debug-release both-release-debug - Do both release and debug builds for the current target."
@$(ECHO) " build-release-x86 - Do a 32-bit release build."
@$(ECHO) " build-debug-x86 - Do a 32-bit debug build."
@$(ECHO) " build-release-amd64 - Do a 64-bit release build."
@$(ECHO) " build-debug-amd64 - Do a 64-bit debug build."
#
# Include the normal root makefile, but without dragging in sub-makefiles.
#
VBOX_ONLY_ROOT_MAKEFILE = 1
include $(dir $(firstword $(MAKEFILE_LIST)))Makefile.kmk

2307
Makefile.kmk Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,14 @@
Information for people packaging the Guest Additions for Linux distributions
============================================================================
We strongly recommend that people packaging the Guest Additions for Linux
distributions track the latest stable version rather than staying with a given
major release number for the life-time of the distribution. The major number
is more relevant for the host software (the actual VirtualBox application)
than for the Linux Additions, which are developed more continuously.
We sometimes have two stable versions at one time - one with more features and
a long-term stable version from the previous major release, which has less
features but a code base which has had longer to mature. While this is also
less relevant for the Additions, you can find the current long-term stable
release version number at
http://download.virtualbox.org/virtualbox/LATEST-STABLE.TXT

58
Version.kmk Normal file
View file

@ -0,0 +1,58 @@
# $Id: Version.kmk $
## @file
# The VirtualBox version.
#
# This file gets included by the root Config.kmk.
#
#
# Copyright (C) 2017-2023 Oracle and/or its affiliates.
#
# This file is part of VirtualBox base platform packages, as
# available from https://www.virtualbox.org.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, in version 3 of the
# License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses>.
#
# SPDX-License-Identifier: GPL-3.0-only
#
# Major version.
VBOX_VERSION_MAJOR = 7
# Minor version.
VBOX_VERSION_MINOR = 0
# This is the current build number. It should be increased every time we publish a
# new build. The define is available in every source file. Only even build numbers
# will be published, odd numbers are set during development.
VBOX_VERSION_BUILD = 20
# This can be overridden in LocalConfig.kmk or elsewhere.
# For the convention, see checks near the end of Config.kmk.
VBOX_BUILD_PUBLISHER =
# Just the BETA[n],ALPHA[n],RC[n] indicators. Set to empty string for release.
VBOX_VERSION_PRERELEASE =
# Force a release-type build with exactly matching Additions etc, even if
# our numbering does not say this is a release build, by setting this non-empty.
VBOX_RELEASE_EXACT_MATCH =
# darwin.arm64 will remain BETA for quite a while.
if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), darwin.arm64)
if $(VBOX_VERSION_BUILD) % 2 == 0
ifeq ($(VBOX_VERSION_PRERELEASE),)
VBOX_RELEASE_EXACT_MATCH := 1
endif
endif
VBOX_VERSION_PRERELEASE := BETA4
endif
# Fallback revision when there is no other source. See Config.kmk.
VBOX_SVN_REV_VERSION_FALLBACK := $(patsubst %:,, $Rev: 163906 $ )

3156
configure vendored Executable file

File diff suppressed because it is too large Load diff

2250
configure.vbs Normal file

File diff suppressed because it is too large Load diff

46
doc/.scm-settings Normal file
View file

@ -0,0 +1,46 @@
# $Id: .scm-settings $
## @file
# Source code massager settings for the docs.
#
#
# Copyright (C) 2010-2023 Oracle and/or its affiliates.
#
# This file is part of VirtualBox base platform packages, as
# available from https://www.virtualbox.org.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, in version 3 of the
# License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses>.
#
# SPDX-License-Identifier: GPL-3.0-only
#
/*.html: --treat-as plaintext
/*.rtf: --treat-as binary
/*.doc: --treat-as binary
/*.odt: --treat-as binary
/*.ods: --treat-as binary
/*.odg: --treat-as binary
/*.sxi: --treat-as binary
/*.vpp: --treat-as binary
/*.wiki: --treat-as plaintext
# Abusing --external-copyright.
/*.txvpck: --treat-as xml --external-copyright --no-convert-eol
/*.txvStateDiagram20: --treat-as xml --external-copyright --no-convert-eol
/*.txvComponentDiagram20: --treat-as xml --external-copyright --no-convert-eol
/*.xmi: --treat-as xml --external-copyright --no-convert-eol
/*.tpx: --treat-as xml --external-copyright --no-convert-eol
/*.graphml: --treat-as xml --external-copyright --no-convert-eol
/*.iuml: --treat-as plaintext --add-action copyright-tick-style

353
doc/License-gpl-2.html Normal file
View file

@ -0,0 +1,353 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- Translation from RTF performed by UnRTF, version 0.20.1 -->
<!-- document uses ANSI character set -->
<!-- font table contains 8 fonts total -->
<!-- creation date: -->
<!-- revision date: -->
<!-- last printed: -->
<!-- comments: StarWriter -->
</head>
<body>
GNU GENERAL PUBLIC LICENSE<br>
Version 2, June 1991<br>
<br>
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,<br>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA<br>
Everyone is permitted to copy and distribute verbatim copies<br>
of this license document, but changing it is not allowed.<br>
<br>
Preamble<br>
<br>
The licenses for most software are designed to take away your<br>
freedom to share and change it. By contrast, the GNU General Public<br>
License is intended to guarantee your freedom to share and change free<br>
software--to make sure the software is free for all its users. This<br>
General Public License applies to most of the Free Software<br>
Foundation's software and to any other program whose authors commit to<br>
using it. (Some other Free Software Foundation software is covered by<br>
the GNU Lesser General Public License instead.) You can apply it to<br>
your programs, too.<br>
<br>
When we speak of free software, we are referring to freedom, not<br>
price. Our General Public Licenses are designed to make sure that you<br>
have the freedom to distribute copies of free software (and charge for<br>
this service if you wish), that you receive source code or can get it<br>
if you want it, that you can change the software or use pieces of it<br>
in new free programs; and that you know you can do these things.<br>
<br>
To protect your rights, we need to make restrictions that forbid<br>
anyone to deny you these rights or to ask you to surrender the rights.<br>
These restrictions translate to certain responsibilities for you if you<br>
distribute copies of the software, or if you modify it.<br>
<br>
For example, if you distribute copies of such a program, whether<br>
gratis or for a fee, you must give the recipients all the rights that<br>
you have. You must make sure that they, too, receive or can get the<br>
source code. And you must show them these terms so they know their<br>
rights.<br>
<br>
We protect your rights with two steps: (1) copyright the software, and<br>
(2) offer you this license which gives you legal permission to copy,<br>
distribute and/or modify the software.<br>
<br>
Also, for each author's protection and ours, we want to make certain<br>
that everyone understands that there is no warranty for this free<br>
software. If the software is modified by someone else and passed on, we<br>
want its recipients to know that what they have is not the original, so<br>
that any problems introduced by others will not reflect on the original<br>
authors' reputations.<br>
<br>
Finally, any free program is threatened constantly by software<br>
patents. We wish to avoid the danger that redistributors of a free<br>
program will individually obtain patent licenses, in effect making the<br>
program proprietary. To prevent this, we have made it clear that any<br>
patent must be licensed for everyone's free use or not licensed at all.<br>
<br>
The precise terms and conditions for copying, distribution and<br>
modification follow.<br>
<br>
GNU GENERAL PUBLIC LICENSE<br>
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION<br>
<br>
0. This License applies to any program or other work which contains<br>
a notice placed by the copyright holder saying it may be distributed<br>
under the terms of this General Public License. The &quot;Program&quot;, below,<br>
refers to any such program or work, and a &quot;work based on the Program&quot;<br>
means either the Program or any derivative work under copyright law:<br>
that is to say, a work containing the Program or a portion of it,<br>
either verbatim or with modifications and/or translated into another<br>
language. (Hereinafter, translation is included without limitation in<br>
the term &quot;modification&quot;.) Each licensee is addressed as &quot;you&quot;.<br>
<br>
Activities other than copying, distribution and modification are not<br>
covered by this License; they are outside its scope. The act of<br>
running the Program is not restricted, and the output from the Program<br>
is covered only if its contents constitute a work based on the<br>
Program (independent of having been made by running the Program).<br>
Whether that is true depends on what the Program does.<br>
<br>
1. You may copy and distribute verbatim copies of the Program's<br>
source code as you receive it, in any medium, provided that you<br>
conspicuously and appropriately publish on each copy an appropriate<br>
copyright notice and disclaimer of warranty; keep intact all the<br>
notices that refer to this License and to the absence of any warranty;<br>
and give any other recipients of the Program a copy of this License<br>
along with the Program.<br>
<br>
You may charge a fee for the physical act of transferring a copy, and<br>
you may at your option offer warranty protection in exchange for a fee.<br>
<br>
2. You may modify your copy or copies of the Program or any portion<br>
of it, thus forming a work based on the Program, and copy and<br>
distribute such modifications or work under the terms of Section 1<br>
above, provided that you also meet all of these conditions:<br>
<br>
a) You must cause the modified files to carry prominent notices<br>
stating that you changed the files and the date of any change.<br>
<br>
b) You must cause any work that you distribute or publish, that in<br>
whole or in part contains or is derived from the Program or any<br>
part thereof, to be licensed as a whole at no charge to all third<br>
parties under the terms of this License.<br>
<br>
c) If the modified program normally reads commands interactively<br>
when run, you must cause it, when started running for such<br>
interactive use in the most ordinary way, to print or display an<br>
announcement including an appropriate copyright notice and a<br>
notice that there is no warranty (or else, saying that you provide<br>
a warranty) and that users may redistribute the program under<br>
these conditions, and telling the user how to view a copy of this<br>
License. (Exception: if the Program itself is interactive but<br>
does not normally print such an announcement, your work based on<br>
the Program is not required to print an announcement.)<br>
<br>
These requirements apply to the modified work as a whole. If<br>
identifiable sections of that work are not derived from the Program,<br>
and can be reasonably considered independent and separate works in<br>
themselves, then this License, and its terms, do not apply to those<br>
sections when you distribute them as separate works. But when you<br>
distribute the same sections as part of a whole which is a work based<br>
on the Program, the distribution of the whole must be on the terms of<br>
this License, whose permissions for other licensees extend to the<br>
entire whole, and thus to each and every part regardless of who wrote it.<br>
<br>
Thus, it is not the intent of this section to claim rights or contest<br>
your rights to work written entirely by you; rather, the intent is to<br>
exercise the right to control the distribution of derivative or<br>
collective works based on the Program.<br>
<br>
In addition, mere aggregation of another work not based on the Program<br>
with the Program (or with a work based on the Program) on a volume of<br>
a storage or distribution medium does not bring the other work under<br>
the scope of this License.<br>
<br>
3. You may copy and distribute the Program (or a work based on it,<br>
under Section 2) in object code or executable form under the terms of<br>
Sections 1 and 2 above provided that you also do one of the following:<br>
<br>
a) Accompany it with the complete corresponding machine-readable<br>
source code, which must be distributed under the terms of Sections<br>
1 and 2 above on a medium customarily used for software interchange; or,<br>
<br>
b) Accompany it with a written offer, valid for at least three<br>
years, to give any third party, for a charge no more than your<br>
cost of physically performing source distribution, a complete<br>
machine-readable copy of the corresponding source code, to be<br>
distributed under the terms of Sections 1 and 2 above on a medium<br>
customarily used for software interchange; or,<br>
<br>
c) Accompany it with the information you received as to the offer<br>
to distribute corresponding source code. (This alternative is<br>
allowed only for noncommercial distribution and only if you<br>
received the program in object code or executable form with such<br>
an offer, in accord with Subsection b above.)<br>
<br>
The source code for a work means the preferred form of the work for<br>
making modifications to it. For an executable work, complete source<br>
code means all the source code for all modules it contains, plus any<br>
associated interface definition files, plus the scripts used to<br>
control compilation and installation of the executable. However, as a<br>
special exception, the source code distributed need not include<br>
anything that is normally distributed (in either source or binary<br>
form) with the major components (compiler, kernel, and so on) of the<br>
operating system on which the executable runs, unless that component<br>
itself accompanies the executable.<br>
<br>
If distribution of executable or object code is made by offering<br>
access to copy from a designated place, then offering equivalent<br>
access to copy the source code from the same place counts as<br>
distribution of the source code, even though third parties are not<br>
compelled to copy the source along with the object code.<br>
<br>
4. You may not copy, modify, sublicense, or distribute the Program<br>
except as expressly provided under this License. Any attempt<br>
otherwise to copy, modify, sublicense or distribute the Program is<br>
void, and will automatically terminate your rights under this License.<br>
However, parties who have received copies, or rights, from you under<br>
this License will not have their licenses terminated so long as such<br>
parties remain in full compliance.<br>
<br>
5. You are not required to accept this License, since you have not<br>
signed it. However, nothing else grants you permission to modify or<br>
distribute the Program or its derivative works. These actions are<br>
prohibited by law if you do not accept this License. Therefore, by<br>
modifying or distributing the Program (or any work based on the<br>
Program), you indicate your acceptance of this License to do so, and<br>
all its terms and conditions for copying, distributing or modifying<br>
the Program or works based on it.<br>
<br>
6. Each time you redistribute the Program (or any work based on the<br>
Program), the recipient automatically receives a license from the<br>
original licensor to copy, distribute or modify the Program subject to<br>
these terms and conditions. You may not impose any further<br>
restrictions on the recipients' exercise of the rights granted herein.<br>
You are not responsible for enforcing compliance by third parties to<br>
this License.<br>
<br>
7. If, as a consequence of a court judgment or allegation of patent<br>
infringement or for any other reason (not limited to patent issues),<br>
conditions are imposed on you (whether by court order, agreement or<br>
otherwise) that contradict the conditions of this License, they do not<br>
excuse you from the conditions of this License. If you cannot<br>
distribute so as to satisfy simultaneously your obligations under this<br>
License and any other pertinent obligations, then as a consequence you<br>
may not distribute the Program at all. For example, if a patent<br>
license would not permit royalty-free redistribution of the Program by<br>
all those who receive copies directly or indirectly through you, then<br>
the only way you could satisfy both it and this License would be to<br>
refrain entirely from distribution of the Program.<br>
<br>
If any portion of this section is held invalid or unenforceable under<br>
any particular circumstance, the balance of the section is intended to<br>
apply and the section as a whole is intended to apply in other<br>
circumstances.<br>
<br>
It is not the purpose of this section to induce you to infringe any<br>
patents or other property right claims or to contest validity of any<br>
such claims; this section has the sole purpose of protecting the<br>
integrity of the free software distribution system, which is<br>
implemented by public license practices. Many people have made<br>
generous contributions to the wide range of software distributed<br>
through that system in reliance on consistent application of that<br>
system; it is up to the author/donor to decide if he or she is willing<br>
to distribute software through any other system and a licensee cannot<br>
impose that choice.<br>
<br>
This section is intended to make thoroughly clear what is believed to<br>
be a consequence of the rest of this License.<br>
<br>
8. If the distribution and/or use of the Program is restricted in<br>
certain countries either by patents or by copyrighted interfaces, the<br>
original copyright holder who places the Program under this License<br>
may add an explicit geographical distribution limitation excluding<br>
those countries, so that distribution is permitted only in or among<br>
countries not thus excluded. In such case, this License incorporates<br>
the limitation as if written in the body of this License.<br>
<br>
9. The Free Software Foundation may publish revised and/or new versions<br>
of the General Public License from time to time. Such new versions will<br>
be similar in spirit to the present version, but may differ in detail to<br>
address new problems or concerns.<br>
<br>
Each version is given a distinguishing version number. If the Program<br>
specifies a version number of this License which applies to it and &quot;any<br>
later version&quot;, you have the option of following the terms and conditions<br>
either of that version or of any later version published by the Free<br>
Software Foundation. If the Program does not specify a version number of<br>
this License, you may choose any version ever published by the Free Software<br>
Foundation.<br>
<br>
10. If you wish to incorporate parts of the Program into other free<br>
programs whose distribution conditions are different, write to the author<br>
to ask for permission. For software which is copyrighted by the Free<br>
Software Foundation, write to the Free Software Foundation; we sometimes<br>
make exceptions for this. Our decision will be guided by the two goals<br>
of preserving the free status of all derivatives of our free software and<br>
of promoting the sharing and reuse of software generally.<br>
<br>
NO WARRANTY<br>
<br>
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY<br>
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN<br>
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES<br>
PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED<br>
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br>
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS<br>
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE<br>
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,<br>
REPAIR OR CORRECTION.<br>
<br>
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING<br>
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR<br>
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,<br>
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING<br>
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED<br>
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY<br>
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER<br>
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE<br>
POSSIBILITY OF SUCH DAMAGES.<br>
<br>
END OF TERMS AND CONDITIONS<br>
<br>
How to Apply These Terms to Your New Programs<br>
<br>
If you develop a new program, and you want it to be of the greatest<br>
possible use to the public, the best way to achieve this is to make it<br>
free software which everyone can redistribute and change under these terms.<br>
<br>
To do so, attach the following notices to the program. It is safest<br>
to attach them to the start of each source file to most effectively<br>
convey the exclusion of warranty; and each file should have at least<br>
the &quot;copyright&quot; line and a pointer to where the full notice is found.<br>
<br>
&lt;one line to give the program's name and a brief idea of what it does.&gt;<br>
Copyright (C) &lt;year&gt; &lt;name of author&gt;<br>
<br>
This program is free software; you can redistribute it and/or modify<br>
it under the terms of the GNU General Public License as published by<br>
the Free Software Foundation; either version 2 of the License, or<br>
(at your option) any later version.<br>
<br>
This program is distributed in the hope that it will be useful,<br>
but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
GNU General Public License for more details.<br>
<br>
You should have received a copy of the GNU General Public License along<br>
with this program; if not, write to the Free Software Foundation, Inc.,<br>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.<br>
<br>
Also add information on how to contact you by electronic and paper mail.<br>
<br>
If the program is interactive, make it output a short notice like this<br>
when it starts in an interactive mode:<br>
<br>
Gnomovision version 69, Copyright (C) year name of author<br>
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.<br>
This is free software, and you are welcome to redistribute it<br>
under certain conditions; type `show c' for details.<br>
<br>
The hypothetical commands `show w' and `show c' should show the appropriate<br>
parts of the General Public License. Of course, the commands you use may<br>
be called something other than `show w' and `show c'; they could even be<br>
mouse-clicks or menu items--whatever suits your program.<br>
<br>
You should also get your employer (if you work as a programmer) or your<br>
school, if any, to sign a &quot;copyright disclaimer&quot; for the program, if<br>
necessary. Here is a sample; alter the names:<br>
<br>
Yoyodyne, Inc., hereby disclaims all copyright interest in the program<br>
`Gnomovision' (which makes passes at compilers) written by James Hacker.<br>
<br>
&lt;signature of Ty Coon&gt;, 1 April 1989<br>
Ty Coon, President of Vice<br>
<br>
This General Public License does not permit incorporating your program into<br>
proprietary programs. If your program is a subroutine library, you may<br>
consider it more useful to permit linking proprietary applications with the<br>
library. If this is what you want to do, use the GNU Lesser General<br>
Public License instead of this License.<br>
</body>
</html>

356
doc/License-gpl-2.rtf Normal file
View file

@ -0,0 +1,356 @@
{\rtf1\ansi\deff1\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset128 Times New Roman;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Bitstream Vera Sans;}{\f3\fnil\fprq0\fcharset128 Palatino Linotype;}{\f4\froman\fprq2\fcharset0 Times New Roman;}{\f5\fswiss\fprq2\fcharset0 Arial;}{\f6\fmodern\fprq1\fcharset0 Bitstream Vera Sans Mono;}{\f7\fmodern\fprq1\fcharset0 Bitstream Vera Sans;}}
{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
{\stylesheet{\s1\rtlch\afs24\lang1081\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\loch\fs24\lang1031\snext1 Normal;}
{\s2\sb240\sa120\keepn\rtlch\af5\afs28\lang1081\ltrch\dbch\af1\langfe2052\hich\f5\fs28\lang1031\loch\f5\fs28\lang1031\sbasedon1\snext3 Heading;}
{\s3\sa120\rtlch\afs24\lang1081\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\loch\fs24\lang1031\sbasedon1\snext3 Body Text;}
{\s4\sa120\rtlch\afs24\lang1081\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\loch\fs24\lang1031\sbasedon3\snext4 List;}
{\s5\sb120\sa120\rtlch\afs24\lang1081\ai\ltrch\dbch\af2\langfe2052\hich\f3\fs24\lang1031\i\loch\f3\fs24\lang1031\i\sbasedon1\snext5 caption;}
{\s6\rtlch\afs24\lang1081\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\loch\fs24\lang1031\sbasedon1\snext6 Index;}
{\s7\sb120\sa120\rtlch\afs24\lang1081\ai\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\i\loch\fs24\lang1031\i\sbasedon1\snext7 caption;}
{\s8\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031\sbasedon1\snext8 Preformatted Text;}
}
{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern3200}}\deftab709
{\*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}}
{\*\pgdscno0}\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 GNU GENERAL PUBLIC LICENSE}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Version 2, June 1991}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Everyone is permitted to copy and distribute verbatim copies}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of this license document, but changing it is not allowed.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Preamble}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 The licenses for most software are designed to take away your}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 freedom to share and change it. By contrast, the GNU General Public}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 License is intended to guarantee your freedom to share and change free}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 software--to make sure the software is free for all its users. This}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 General Public License applies to most of the Free Software}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Foundation's software and to any other program whose authors commit to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 using it. (Some other Free Software Foundation software is covered by}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the GNU Lesser General Public License instead.) You can apply it to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 your programs, too.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 When we speak of free software, we are referring to freedom, not}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 price. Our General Public Licenses are designed to make sure that you}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 have the freedom to distribute copies of free software (and charge for}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this service if you wish), that you receive source code or can get it}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 if you want it, that you can change the software or use pieces of it}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 in new free programs; and that you know you can do these things.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 To protect your rights, we need to make restrictions that forbid}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 anyone to deny you these rights or to ask you to surrender the rights.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 These restrictions translate to certain responsibilities for you if you}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute copies of the software, or if you modify it.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 For example, if you distribute copies of such a program, whether}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 gratis or for a fee, you must give the recipients all the rights that}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 you have. You must make sure that they, too, receive or can get the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 source code. And you must show them these terms so they know their}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 rights.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 We protect your rights with two steps: (1) copyright the software, and}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 (2) offer you this license which gives you legal permission to copy,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute and/or modify the software.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Also, for each author's protection and ours, we want to make certain}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 that everyone understands that there is no warranty for this free}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 software. If the software is modified by someone else and passed on, we}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 want its recipients to know that what they have is not the original, so}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 that any problems introduced by others will not reflect on the original}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 authors' reputations.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Finally, any free program is threatened constantly by software}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 patents. We wish to avoid the danger that redistributors of a free}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 program will individually obtain patent licenses, in effect making the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 program proprietary. To prevent this, we have made it clear that any}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 patent must be licensed for everyone's free use or not licensed at all.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 The precise terms and conditions for copying, distribution and}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 modification follow.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 GNU GENERAL PUBLIC LICENSE}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 0. This License applies to any program or other work which contains}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a notice placed by the copyright holder saying it may be distributed}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 under the terms of this General Public License. The "Program", below,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 refers to any such program or work, and a "work based on the Program"}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 means either the Program or any derivative work under copyright law:}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 that is to say, a work containing the Program or a portion of it,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 either verbatim or with modifications and/or translated into another}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 language. (Hereinafter, translation is included without limitation in}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the term "modification".) Each licensee is addressed as "you".}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Activities other than copying, distribution and modification are not}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 covered by this License; they are outside its scope. The act of}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 running the Program is not restricted, and the output from the Program}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 is covered only if its contents constitute a work based on the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Program (independent of having been made by running the Program).}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Whether that is true depends on what the Program does.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 1. You may copy and distribute verbatim copies of the Program's}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 source code as you receive it, in any medium, provided that you}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 conspicuously and appropriately publish on each copy an appropriate}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 copyright notice and disclaimer of warranty; keep intact all the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 notices that refer to this License and to the absence of any warranty;}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 and give any other recipients of the Program a copy of this License}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 along with the Program.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 You may charge a fee for the physical act of transferring a copy, and}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 you may at your option offer warranty protection in exchange for a fee.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 2. You may modify your copy or copies of the Program or any portion}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of it, thus forming a work based on the Program, and copy and}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute such modifications or work under the terms of Section 1}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 above, provided that you also meet all of these conditions:}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a) You must cause the modified files to carry prominent notices}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 stating that you changed the files and the date of any change.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 b) You must cause any work that you distribute or publish, that in}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 whole or in part contains or is derived from the Program or any}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 part thereof, to be licensed as a whole at no charge to all third}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 parties under the terms of this License.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 c) If the modified program normally reads commands interactively}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 when run, you must cause it, when started running for such}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 interactive use in the most ordinary way, to print or display an}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 announcement including an appropriate copyright notice and a}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 notice that there is no warranty (or else, saying that you provide}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a warranty) and that users may redistribute the program under}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 these conditions, and telling the user how to view a copy of this}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 License. (Exception: if the Program itself is interactive but}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 does not normally print such an announcement, your work based on}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the Program is not required to print an announcement.)}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 These requirements apply to the modified work as a whole. If}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 identifiable sections of that work are not derived from the Program,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 and can be reasonably considered independent and separate works in}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 themselves, then this License, and its terms, do not apply to those}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 sections when you distribute them as separate works. But when you}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute the same sections as part of a whole which is a work based}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 on the Program, the distribution of the whole must be on the terms of}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this License, whose permissions for other licensees extend to the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 entire whole, and thus to each and every part regardless of who wrote it.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Thus, it is not the intent of this section to claim rights or contest}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 your rights to work written entirely by you; rather, the intent is to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 exercise the right to control the distribution of derivative or}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 collective works based on the Program.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 In addition, mere aggregation of another work not based on the Program}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 with the Program (or with a work based on the Program) on a volume of}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a storage or distribution medium does not bring the other work under}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the scope of this License.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 3. You may copy and distribute the Program (or a work based on it,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 under Section 2) in object code or executable form under the terms of}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Sections 1 and 2 above provided that you also do one of the following:}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a) Accompany it with the complete corresponding machine-readable}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 source code, which must be distributed under the terms of Sections}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 1 and 2 above on a medium customarily used for software interchange; or,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 b) Accompany it with a written offer, valid for at least three}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 years, to give any third party, for a charge no more than your}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 cost of physically performing source distribution, a complete}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 machine-readable copy of the corresponding source code, to be}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distributed under the terms of Sections 1 and 2 above on a medium}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 customarily used for software interchange; or,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 c) Accompany it with the information you received as to the offer}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 to distribute corresponding source code. (This alternative is}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 allowed only for noncommercial distribution and only if you}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 received the program in object code or executable form with such}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 an offer, in accord with Subsection b above.)}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 The source code for a work means the preferred form of the work for}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 making modifications to it. For an executable work, complete source}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 code means all the source code for all modules it contains, plus any}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 associated interface definition files, plus the scripts used to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 control compilation and installation of the executable. However, as a}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 special exception, the source code distributed need not include}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 anything that is normally distributed (in either source or binary}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 form) with the major components (compiler, kernel, and so on) of the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 operating system on which the executable runs, unless that component}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 itself accompanies the executable.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 If distribution of executable or object code is made by offering}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 access to copy from a designated place, then offering equivalent}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 access to copy the source code from the same place counts as}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribution of the source code, even though third parties are not}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 compelled to copy the source along with the object code.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 4. You may not copy, modify, sublicense, or distribute the Program}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 except as expressly provided under this License. Any attempt}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 otherwise to copy, modify, sublicense or distribute the Program is}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 void, and will automatically terminate your rights under this License.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 However, parties who have received copies, or rights, from you under}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this License will not have their licenses terminated so long as such}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 parties remain in full compliance.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 5. You are not required to accept this License, since you have not}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 signed it. However, nothing else grants you permission to modify or}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute the Program or its derivative works. These actions are}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 prohibited by law if you do not accept this License. Therefore, by}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 modifying or distributing the Program (or any work based on the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Program), you indicate your acceptance of this License to do so, and}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 all its terms and conditions for copying, distributing or modifying}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the Program or works based on it.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 6. Each time you redistribute the Program (or any work based on the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Program), the recipient automatically receives a license from the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 original licensor to copy, distribute or modify the Program subject to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 these terms and conditions. You may not impose any further}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 restrictions on the recipients' exercise of the rights granted herein.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 You are not responsible for enforcing compliance by third parties to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this License.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 7. If, as a consequence of a court judgment or allegation of patent}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 infringement or for any other reason (not limited to patent issues),}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 conditions are imposed on you (whether by court order, agreement or}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 otherwise) that contradict the conditions of this License, they do not}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 excuse you from the conditions of this License. If you cannot}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute so as to satisfy simultaneously your obligations under this}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 License and any other pertinent obligations, then as a consequence you}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 may not distribute the Program at all. For example, if a patent}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 license would not permit royalty-free redistribution of the Program by}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 all those who receive copies directly or indirectly through you, then}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the only way you could satisfy both it and this License would be to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 refrain entirely from distribution of the Program.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 If any portion of this section is held invalid or unenforceable under}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 any particular circumstance, the balance of the section is intended to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 apply and the section as a whole is intended to apply in other}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 circumstances.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 It is not the purpose of this section to induce you to infringe any}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 patents or other property right claims or to contest validity of any}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 such claims; this section has the sole purpose of protecting the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 integrity of the free software distribution system, which is}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 implemented by public license practices. Many people have made}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 generous contributions to the wide range of software distributed}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 through that system in reliance on consistent application of that}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 system; it is up to the author/donor to decide if he or she is willing}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 to distribute software through any other system and a licensee cannot}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 impose that choice.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This section is intended to make thoroughly clear what is believed to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 be a consequence of the rest of this License.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 8. If the distribution and/or use of the Program is restricted in}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 certain countries either by patents or by copyrighted interfaces, the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 original copyright holder who places the Program under this License}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 may add an explicit geographical distribution limitation excluding}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 those countries, so that distribution is permitted only in or among}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 countries not thus excluded. In such case, this License incorporates}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the limitation as if written in the body of this License.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 9. The Free Software Foundation may publish revised and/or new versions}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of the General Public License from time to time. Such new versions will}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 be similar in spirit to the present version, but may differ in detail to}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 address new problems or concerns.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Each version is given a distinguishing version number. If the Program}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 specifies a version number of this License which applies to it and "any}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 later version", you have the option of following the terms and conditions}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 either of that version or of any later version published by the Free}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Software Foundation. If the Program does not specify a version number of}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this License, you may choose any version ever published by the Free Software}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Foundation.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 10. If you wish to incorporate parts of the Program into other free}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 programs whose distribution conditions are different, write to the author}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 to ask for permission. For software which is copyrighted by the Free}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Software Foundation, write to the Free Software Foundation; we sometimes}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 make exceptions for this. Our decision will be guided by the two goals}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of preserving the free status of all derivatives of our free software and}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of promoting the sharing and reuse of software generally.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 NO WARRANTY}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 REPAIR OR CORRECTION.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 POSSIBILITY OF SUCH DAMAGES.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 END OF TERMS AND CONDITIONS}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 How to Apply These Terms to Your New Programs}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 If you develop a new program, and you want it to be of the greatest}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 possible use to the public, the best way to achieve this is to make it}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 free software which everyone can redistribute and change under these terms.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 To do so, attach the following notices to the program. It is safest}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 to attach them to the start of each source file to most effectively}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 convey the exclusion of warranty; and each file should have at least}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the "copyright" line and a pointer to where the full notice is found.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 <one line to give the program's name and a brief idea of what it does.>}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Copyright (C) <year> <name of author>}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This program is free software; you can redistribute it and/or modify}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 it under the terms of the GNU General Public License as published by}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the Free Software Foundation; either version 2 of the License, or}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 (at your option) any later version.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This program is distributed in the hope that it will be useful,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 but WITHOUT ANY WARRANTY; without even the implied warranty of}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 GNU General Public License for more details.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 You should have received a copy of the GNU General Public License along}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 with this program; if not, write to the Free Software Foundation, Inc.,}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Also add information on how to contact you by electronic and paper mail.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 If the program is interactive, make it output a short notice like this}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 when it starts in an interactive mode:}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Gnomovision version 69, Copyright (C) year name of author}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This is free software, and you are welcome to redistribute it}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 under certain conditions; type `show c' for details.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 The hypothetical commands `show w' and `show c' should show the appropriate}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 parts of the General Public License. Of course, the commands you use may}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 be called something other than `show w' and `show c'; they could even be}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 mouse-clicks or menu items--whatever suits your program.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 You should also get your employer (if you work as a programmer) or your}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 school, if any, to sign a "copyright disclaimer" for the program, if}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 necessary. Here is a sample; alter the names:}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Yoyodyne, Inc., hereby disclaims all copyright interest in the program}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 `Gnomovision' (which makes passes at compilers) written by James Hacker.}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 <signature of Ty Coon>, 1 April 1989}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Ty Coon, President of Vice}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This General Public License does not permit incorporating your program into}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 proprietary programs. If your program is a subroutine library, you may}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 consider it more useful to permit linking proprietary applications with the}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 library. If this is what you want to do, use the GNU Lesser General}
\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Public License instead of this License.}
\par }

339
doc/License-gpl-2.txt Normal file
View file

@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

771
doc/License-gpl-3.0.html Normal file
View file

@ -0,0 +1,771 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<style>
body { font-family: Verdana, Arial, Helvetica, sans-serif; }
</style>
</head>
<body lang=EN-US style='word-wrap:break-word'>
<p>COPYING file for VirtualBox versions 7.0 and later versions
that include this file</p>
<p>Preliminary notes:</p>
<p style='text-align:justify'>1) The majority of the code in
the VirtualBox base package is licensed under the GNU General Public License,
version 3 (GPL). VirtualBox contains many components developed by Oracle and
various third parties. The license for each component is located in the
licensing documentation and/or in the component's source code.</p>
<p style='text-align:justify'>2) As an exception to the reciprocal
license obligations of the GPL listed below, you may use any VirtualBox header
file that is marked by Oracle as licensed under both the GPL and the Common
Development and Distribution License version 1.0 (CDDL) to invoke the
unmodified VirtualBox libraries. In other words, calling such a multi-licensed
interface by dynamically linking to the unmodified VirtualBox libraries is
considered a normal use of VirtualBox and does not turn the calling code into a
derived work of VirtualBox. In particular, this applies to code that wants to
extend VirtualBox by way of the Extension Pack mechanism declared in the
ExtPack.h header file.</p>
<p style='text-align:justify'>3) Whoever creates or distributes
a derived work based on VirtualBox is not obligated to grant the above
exceptions for such a version. The GPL permits you to release a modified
version without the above exception; in addition, Oracle hereby also allows you
to release a modified version which carries forward these exceptions.</p>
<p>Oracle America, Inc.</p>
<p>---</p>
<p>GNU GENERAL PUBLIC LICENSE</p>
<p>Version 3, 29 June 2007</p>
<p>Copyright &copy; 2007 Free Software Foundation, Inc.
&lt;https://fsf.org/&gt;</p>
<p style='text-align:justify'>Everyone is permitted to copy and
distribute verbatim copies of this license document, but changing it is not
allowed.</p>
<p>Preamble</p>
<p>The GNU General Public License is a free, copyleft license
for software and other kinds of works.</p>
<p style='text-align:justify'>The licenses for most software
and other practical works are designed to take away your freedom to share and
change the works. By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change all versions of a program--to make
sure it remains free software for all its users. We, the Free Software
Foundation, use the GNU General Public License for most of our software; it
applies also to any other work released this way by its authors. You can apply
it to your programs, too.</p>
<p style='text-align:justify'>When we speak of free software,
we are referring to freedom, not price. Our General Public Licenses are
designed to make sure that you have the freedom to distribute copies of free
software (and charge for them if you wish), that you receive source code or can
get it if you want it, that you can change the software or use pieces of it in
new free programs, and that you know you can do these things.</p>
<p style='text-align:justify'>To protect your rights, we need
to prevent others from denying you these rights or asking you to surrender the
rights. Therefore, you have certain responsibilities if you distribute copies
of the software, or if you modify it: responsibilities to respect the freedom
of others.</p>
<p style='text-align:justify'>For example, if you distribute
copies of such a program, whether gratis or for a fee, you must pass on to the
recipients the same freedoms that you received. You must make sure that they,
too, receive or can get the source code. And you must show them these terms so
they know their rights.</p>
<p style='text-align:justify'>Developers that use the GNU GPL
protect your rights with two steps: (1) assert copyright on the software, and
(2) offer you this License giving you legal permission to copy, distribute
and/or modify it.</p>
<p style='text-align:justify'>For the developers' and authors'
protection, the GPL clearly explains that there is no warranty for this free
software. For both users' and authors' sake, the GPL requires that modified
versions be marked as changed, so that their problems will not be attributed
erroneously to authors of previous versions.</p>
<p style='text-align:justify'>Some devices are designed to deny
users access to install or run modified versions of the software inside them,
although the manufacturer can do so. This is fundamentally incompatible with
the aim of protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to use,
which is precisely where it is most unacceptable. Therefore, we have designed
this version of the GPL to prohibit the practice for those products. If such
problems arise substantially in other domains, we stand ready to extend this
provision to those domains in future versions of the GPL, as needed to protect
the freedom of users.</p>
<p style='text-align:justify'>Finally, every program is
threatened constantly by software patents. States should not allow patents to
restrict development and use of software on general-purpose computers, but in
those that do, we wish to avoid the special danger that patents applied to a
free program could make it effectively proprietary. To prevent this, the GPL
assures that patents cannot be used to render the program non-free.</p>
<p style='text-align:justify'>The precise terms and conditions
for copying, distribution and modification follow.</p>
<p style='text-align:justify'>TERMS AND CONDITIONS</p>
<p style='text-align:justify'>0. Definitions.</p>
<p style='text-align:justify'>&ldquo;This License&rdquo; refers to version
3 of the GNU General Public License.</p>
<p style='text-align:justify'>&ldquo;Copyright&rdquo; also means
copyright-like laws that apply to other kinds of works, such as semiconductor
masks.</p>
<p style='text-align:justify'>&ldquo;The Program&rdquo; refers to any
copyrightable work licensed under this License. Each licensee is addressed as
&ldquo;you&rdquo;. &ldquo;Licensees&rdquo; and &ldquo;recipients&rdquo; may be individuals or organizations.</p>
<p style='text-align:justify'>To &ldquo;modify&rdquo; a work means to copy
from or adapt all or part of the work in a fashion requiring copyright
permission, other than the making of an exact copy. The resulting work is
called a &ldquo;modified version&rdquo; of the earlier work or a work &ldquo;based on&rdquo; the
earlier work.</p>
<p style='text-align:justify'>A &ldquo;covered work&rdquo; means either the
unmodified Program or a work based on the Program.</p>
<p style='text-align:justify'>To &ldquo;propagate&rdquo; a work means to do
anything with it that, without permission, would make you directly or
secondarily liable for infringement under applicable copyright law, except
executing it on a computer or modifying a private copy. Propagation includes
copying, distribution (with or without modification), making available to the
public, and in some countries other activities as well.</p>
<p style='text-align:justify'>To &ldquo;convey&rdquo; a work means any kind
of propagation that enables other parties to make or receive copies. Mere
interaction with a user through a computer network, with no transfer of a copy,
is not conveying.</p>
<p style='text-align:justify'>An interactive user interface
displays &ldquo;Appropriate Legal Notices&rdquo; to the extent that it includes a
convenient and prominently visible feature that (1) displays an appropriate
copyright notice, and (2) tells the user that there is no warranty for the work
(except to the extent that warranties are provided), that licensees may convey
the work under this License, and how to view a copy of this License. If the
interface presents a list of user commands or options, such as a menu, a
prominent item in the list meets this criterion.</p>
<p style='text-align:justify'>1. Source Code.</p>
<p style='text-align:justify'>The &ldquo;source code&rdquo; for a work
means the preferred form of the work for making modifications to it. &ldquo;Object
code&rdquo; means any non-source form of a work.</p>
<p style='text-align:justify'>A &ldquo;Standard Interface&rdquo; means an
interface that either is an official standard defined by a recognized standards
body, or, in the case of interfaces specified for a particular programming
language, one that is widely used among developers working in that language.</p>
<p style='text-align:justify'>The &ldquo;System Libraries&rdquo; of an
executable work include anything, other than the work as a whole, that (a) is
included in the normal form of packaging a Major Component, but which is not
part of that Major Component, and (b) serves only to enable use of the work
with that Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A &ldquo;Major
Component&rdquo;, in this context, means a major essential component (kernel, window
system, and so on) of the specific operating system (if any) on which the
executable work runs, or a compiler used to produce the work, or an object code
interpreter used to run it.</p>
<p style='text-align:justify'>The &ldquo;Corresponding Source&rdquo; for a
work in object code form means all the source code needed to generate, install,
and (for an executable work) run the object code and to modify the work,
including scripts to control those activities. However, it does not include the
work's System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but which are
not part of the work. For example, Corresponding Source includes interface
definition files associated with source files for the work, and the source code
for shared libraries and dynamically linked subprograms that the work is
specifically designed to require, such as by intimate data communication or
control flow between those subprograms and other parts of the work.</p>
<p style='text-align:justify'>The Corresponding Source need not
include anything that users can regenerate automatically from other parts of
the Corresponding Source.</p>
<p style='text-align:justify'>The Corresponding Source for a
work in source code form is that same work.</p>
<p style='text-align:justify'>2. Basic Permissions.</p>
<p style='text-align:justify'>All rights granted under this
License are granted for the term of copyright on the Program, and are irrevocable
provided the stated conditions are met. This License explicitly affirms your
unlimited permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its content,
constitutes a covered work. This License acknowledges your rights of fair use
or other equivalent, as provided by copyright law.</p>
<p style='text-align:justify'>You may make, run and propagate
covered works that you do not convey, without conditions so long as your
license otherwise remains in force. You may convey covered works to others for
the sole purpose of having them make modifications exclusively for you, or
provide you with facilities for running those works, provided that you comply
with the terms of this License in conveying all material for which you do not
control copyright. Those thus making or running the covered works for you must
do so exclusively on your behalf, under your direction and control, on terms
that prohibit them from making any copies of your copyrighted material outside
their relationship with you.</p>
<p style='text-align:justify'>Conveying under any other
circumstances is permitted solely under the conditions stated below.
Sublicensing is not allowed; section 10 makes it unnecessary.</p>
<p style='text-align:justify'>3. Protecting Users' Legal Rights
From Anti-Circumvention Law.</p>
<p style='text-align:justify'>No covered work shall be deemed
part of an effective technological measure under any applicable law fulfilling
obligations under article 11 of the WIPO copyright treaty adopted on 20
December 1996, or similar laws prohibiting or restricting circumvention of such
measures.</p>
<p style='text-align:justify'>When you convey a covered work,
you waive any legal power to forbid circumvention of technological measures to
the extent such circumvention is effected by exercising rights under this
License with respect to the covered work, and you disclaim any intention to
limit operation or modification of the work as a means of enforcing, against
the work's users, your or third parties' legal rights to forbid circumvention
of technological measures.</p>
<p style='text-align:justify'>4. Conveying Verbatim Copies.</p>
<p style='text-align:justify'>You may convey verbatim copies of
the Program's source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate copyright
notice; keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code; keep
intact all notices of the absence of any warranty; and give all recipients a
copy of this License along with the Program.</p>
<p style='text-align:justify'>You may charge any price or no
price for each copy that you convey, and you may offer support or warranty
protection for a fee.</p>
<p style='text-align:justify'>5. Conveying Modified Source
Versions.</p>
<p style='text-align:justify'>You may convey a work based on
the Program, or the modifications to produce it from the Program, in the form
of source code under the terms of section 4, provided that you also meet all of
these conditions:</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;a) The work must carry prominent notices
stating that you modified it, and giving a relevant date.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;b) The work must carry prominent notices
stating that it is released under this License and any conditions added under
section 7. This requirement modifies the requirement in section 4 to &ldquo;keep
intact all notices&rdquo;.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;c) You must license the entire work, as a
whole, under this License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7 additional
terms, to the whole of the work, and all its parts, regardless of how they are
packaged. This License gives no permission to license the work in any other
way, but it does not invalidate such permission if you have separately received
it.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;d) If the work has interactive user
interfaces, each must display Appropriate Legal Notices; however, if the
Program has interactive interfaces that do not display Appropriate Legal
Notices, your work need not make them do so.</p>
<p style='text-align:justify'>A compilation of a covered work
with other separate and independent works, which are not by their nature
extensions of the covered work, and which are not combined with it such as to
form a larger program, in or on a volume of a storage or distribution medium,
is called an &ldquo;aggregate&rdquo; if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users beyond what
the individual works permit. Inclusion of a covered work in an aggregate does
not cause this License to apply to the other parts of the aggregate.</p>
<p style='text-align:justify'>6. Conveying Non-Source Forms.</p>
<p style='text-align:justify'>You may convey a covered work in
object code form under the terms of sections 4 and 5, provided that you also
convey the machine-readable Corresponding Source under the terms of this
License, in one of these ways:</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;a) Convey the object code in, or embodied
in, a physical product (including a physical distribution medium), accompanied
by the Corresponding Source fixed on a durable physical medium customarily used
for software interchange.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;b) Convey the object code in, or embodied
in, a physical product (including a physical distribution medium), accompanied
by a written offer, valid for at least three years and valid for as long as you
offer spare parts or customer support for that product model, to give anyone
who possesses the object code either (1) a copy of the Corresponding Source for
all the software in the product that is covered by this License, on a durable
physical medium customarily used for software interchange, for a price no more
than your reasonable cost of physically performing this conveying of source, or
(2) access to copy the Corresponding Source from a network server at no charge.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;c) Convey individual copies of the object
code with a copy of the written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and only if you
received the object code with such an offer, in accord with subsection 6b.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;d) Convey the object code by offering
access from a designated place (gratis or for a charge), and offer equivalent
access to the Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the Corresponding
Source along with the object code. If the place to copy the object code is a
network server, the Corresponding Source may be on a different server (operated
by you or a third party) that supports equivalent copying facilities, provided you
maintain clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the Corresponding Source,
you remain obligated to ensure that it is available for as long as needed to
satisfy these requirements.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;e) Convey the object code using
peer-to-peer transmission, provided you inform other peers where the object
code and Corresponding Source of the work are being offered to the general
public at no charge under subsection 6d.</p>
<p style='text-align:justify'>A separable portion of the object
code, whose source code is excluded from the Corresponding Source as a System
Library, need not be included in conveying the object code work.</p>
<p style='text-align:justify'>A &ldquo;User Product&rdquo; is either (1) a
&ldquo;consumer product&rdquo;, which means any tangible personal property which is
normally used for personal, family, or household purposes, or (2) anything
designed or sold for incorporation into a dwelling. In determining whether a
product is a consumer product, doubtful cases shall be resolved in favor of
coverage. For a particular product received by a particular user, &ldquo;normally
used&rdquo; refers to a typical or common use of that class of product, regardless of
the status of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product is a
consumer product regardless of whether the product has substantial commercial,
industrial or non-consumer uses, unless such uses represent the only
significant mode of use of the product.</p>
<p style='text-align:justify'>&ldquo;Installation Information&rdquo; for a
User Product means any methods, procedures, authorization keys, or other
information required to install and execute modified versions of a covered work
in that User Product from a modified version of its Corresponding Source. The
information must suffice to ensure that the continued functioning of the
modified object code is in no case prevented or interfered with solely because
modification has been made.</p>
<p style='text-align:justify'>If you convey an object code work
under this section in, or with, or specifically for use in, a User Product, and
the conveying occurs as part of a transaction in which the right of possession
and use of the User Product is transferred to the recipient in perpetuity or
for a fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied by the
Installation Information. But this requirement does not apply if neither you
nor any third party retains the ability to install modified object code on the
User Product (for example, the work has been installed in ROM).</p>
<p style='text-align:justify'>The requirement to provide
Installation Information does not include a requirement to continue to provide
support service, warranty, or updates for a work that has been modified or
installed by the recipient, or for the User Product in which it has been
modified or installed. Access to a network may be denied when the modification
itself materially and adversely affects the operation of the network or
violates the rules and protocols for communication across the network.</p>
<p style='text-align:justify'>Corresponding Source conveyed,
and Installation Information provided, in accord with this section must be in a
format that is publicly documented (and with an implementation available to the
public in source code form), and must require no special password or key for
unpacking, reading or copying.</p>
<p style='text-align:justify'>7. Additional Terms.</p>
<p style='text-align:justify'>&ldquo;Additional permissions&rdquo; are
terms that supplement the terms of this License by making exceptions from one
or more of its conditions. Additional permissions that are applicable to the
entire Program shall be treated as though they were included in this License,
to the extent that they are valid under applicable law. If additional
permissions apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by this
License without regard to the additional permissions.</p>
<p style='text-align:justify'>When you convey a copy of a
covered work, you may at your option remove any additional permissions from
that copy, or from any part of it. (Additional permissions may be written to
require their own removal in certain cases when you modify the work.) You may
place additional permissions on material, added by you to a covered work, for
which you have or can give appropriate copyright permission.</p>
<p style='text-align:justify'>Notwithstanding any other provision
of this License, for material you add to a covered work, you may (if authorized
by the copyright holders of that material) supplement the terms of this License
with terms:</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;a) Disclaiming warranty or limiting
liability differently from the terms of sections 15 and 16 of this License; or</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;b) Requiring preservation of specified
reasonable legal notices or author attributions in that material or in the
Appropriate Legal Notices displayed by works containing it; or</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;c) Prohibiting misrepresentation of the
origin of that material, or requiring that modified versions of such material
be marked in reasonable ways as different from the original version; or</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;d) Limiting the use for publicity purposes
of names of licensors or authors of the material; or</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;e) Declining to grant rights under
trademark law for use of some trade names, trademarks, or service marks; or</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;f) Requiring indemnification of licensors
and authors of that material by anyone who conveys the material (or modified
versions of it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on those
licensors and authors.</p>
<p style='text-align:justify'>All other non-permissive
additional terms are considered &ldquo;further restrictions&rdquo; within the meaning of
section 10. If the Program as you received it, or any part of it, contains a
notice stating that it is governed by this License along with a term that is a
further restriction, you may remove that term. If a license document contains a
further restriction but permits relicensing or conveying under this License,
you may add to a covered work material governed by the terms of that license
document, provided that the further restriction does not survive such
relicensing or conveying.</p>
<p style='text-align:justify'>If you add terms to a covered
work in accord with this section, you must place, in the relevant source files,
a statement of the additional terms that apply to those files, or a notice
indicating where to find the applicable terms.</p>
<p style='text-align:justify'>Additional terms, permissive or
non-permissive, may be stated in the form of a separately written license, or
stated as exceptions; the above requirements apply either way.</p>
<p style='text-align:justify'>8. Termination.</p>
<p style='text-align:justify'>You may not propagate or modify a
covered work except as expressly provided under this License. Any attempt
otherwise to propagate or modify it is void, and will automatically terminate
your rights under this License (including any patent licenses granted under the
third paragraph of section 11).</p>
<p style='text-align:justify'>However, if you cease all
violation of this License, then your license from a particular copyright holder
is reinstated (a) provisionally, unless and until the copyright holder
explicitly and finally terminates your license, and (b) permanently, if the
copyright holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.</p>
<p style='text-align:justify'>Moreover, your license from a
particular copyright holder is reinstated permanently if the copyright holder
notifies you of the violation by some reasonable means, this is the first time
you have received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after your
receipt of the notice.</p>
<p style='text-align:justify'>Termination of your rights under
this section does not terminate the licenses of parties who have received
copies or rights from you under this License. If your rights have been
terminated and not permanently reinstated, you do not qualify to receive new
licenses for the same material under section 10.</p>
<p style='text-align:justify'>9. Acceptance Not Required for
Having Copies.</p>
<p style='text-align:justify'>You are not required to accept
this License in order to receive or run a copy of the Program. Ancillary
propagation of a covered work occurring solely as a consequence of using
peer-to-peer transmission to receive a copy likewise does not require
acceptance. However, nothing other than this License grants you permission to
propagate or modify any covered work. These actions infringe copyright if you
do not accept this License. Therefore, by modifying or propagating a covered
work, you indicate your acceptance of this License to do so.</p>
<p style='text-align:justify'>10. Automatic Licensing of
Downstream Recipients.</p>
<p style='text-align:justify'>Each time you convey a covered
work, the recipient automatically receives a license from the original
licensors, to run, modify and propagate that work, subject to this License. You
are not responsible for enforcing compliance by third parties with this
License.</p>
<p style='text-align:justify'>An &ldquo;entity transaction&rdquo; is a
transaction transferring control of an organization, or substantially all
assets of one, or subdividing an organization, or merging organizations. If
propagation of a covered work results from an entity transaction, each party to
that transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could give
under the previous paragraph, plus a right to possession of the Corresponding
Source of the work from the predecessor in interest, if the predecessor has it
or can get it with reasonable efforts.</p>
<p style='text-align:justify'>You may not impose any further
restrictions on the exercise of the rights granted or affirmed under this
License. For example, you may not impose a license fee, royalty, or other
charge for exercise of rights granted under this License, and you may not
initiate litigation (including a cross-claim or counterclaim in a lawsuit)
alleging that any patent claim is infringed by making, using, selling, offering
for sale, or importing the Program or any portion of it.</p>
<p style='text-align:justify'>11. Patents.</p>
<p style='text-align:justify'>A &ldquo;contributor&rdquo; is a copyright
holder who authorizes use under this License of the Program or a work on which
the Program is based. The work thus licensed is called the contributor's
&ldquo;contributor version&rdquo;.</p>
<p style='text-align:justify'>A contributor's &ldquo;essential patent
claims&rdquo; are all patent claims owned or controlled by the contributor, whether
already acquired or hereafter acquired, that would be infringed by some manner,
permitted by this License, of making, using, or selling its contributor
version, but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For purposes of
this definition, &ldquo;control&rdquo; includes the right to grant patent sublicenses in a
manner consistent with the requirements of this License.</p>
<p style='text-align:justify'>Each contributor grants you a
non-exclusive, worldwide, royalty-free patent license under the contributor's
essential patent claims, to make, use, sell, offer for sale, import and
otherwise run, modify and propagate the contents of its contributor version.</p>
<p style='text-align:justify'>In the following three
paragraphs, a &ldquo;patent license&rdquo; is any express agreement or commitment, however
denominated, not to enforce a patent (such as an express permission to practice
a patent or covenant not to sue for patent infringement). To &ldquo;grant&rdquo; such a
patent license to a party means to make such an agreement or commitment not to
enforce a patent against the party.</p>
<p style='text-align:justify'>If you convey a covered work,
knowingly relying on a patent license, and the Corresponding Source of the work
is not available for anyone to copy, free of charge and under the terms of this
License, through a publicly available network server or other readily
accessible means, then you must either (1) cause the Corresponding Source to be
so available, or (2) arrange to deprive yourself of the benefit of the patent
license for this particular work, or (3) arrange, in a manner consistent with
the requirements of this License, to extend the patent license to downstream
recipients. &ldquo;Knowingly relying&rdquo; means you have actual knowledge that, but for
the patent license, your conveying the covered work in a country, or your recipient's
use of the covered work in a country, would infringe one or more identifiable
patents in that country that you have reason to believe are valid.</p>
<p style='text-align:justify'>If, pursuant to or in connection
with a single transaction or arrangement, you convey, or propagate by procuring
conveyance of, a covered work, and grant a patent license to some of the
parties receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license you
grant is automatically extended to all recipients of the covered work and works
based on it.</p>
<p style='text-align:justify'>A patent license is
&ldquo;discriminatory&rdquo; if it does not include within the scope of its coverage,
prohibits the exercise of, or is conditioned on the non-exercise of one or more
of the rights that are specifically granted under this License. You may not
convey a covered work if you are a party to an arrangement with a third party
that is in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying the work,
and under which the third party grants, to any of the parties who would receive
the covered work from you, a discriminatory patent license (a) in connection
with copies of the covered work conveyed by you (or copies made from those
copies), or (b) primarily for and in connection with specific products or
compilations that contain the covered work, unless you entered into that
arrangement, or that patent license was granted, prior to 28 March 2007.</p>
<p style='text-align:justify'>Nothing in this License shall be
construed as excluding or limiting any implied license or other defenses to
infringement that may otherwise be available to you under applicable patent
law.</p>
<p style='text-align:justify'>12. No Surrender of Others'
Freedom.</p>
<p style='text-align:justify'>If conditions are imposed on you
(whether by court order, agreement or otherwise) that contradict the conditions
of this License, they do not excuse you from the conditions of this License. If
you cannot convey a covered work so as to satisfy simultaneously your
obligations under this License and any other pertinent obligations, then as a
consequence you may not convey it at all. For example, if you agree to terms
that obligate you to collect a royalty for further conveying from those to whom
you convey the Program, the only way you could satisfy both those terms and
this License would be to refrain entirely from conveying the Program.</p>
<p style='text-align:justify'>13. Use with the GNU Affero General Public
License.</p>
<p style='text-align:justify'>Notwithstanding any other
provision of this License, you have permission to link or combine any covered
work with a work licensed under version 3 of the GNU Affero
General Public License into a single combined work, and to convey the resulting
work. The terms of this License will continue to apply to the part which is the
covered work, but the special requirements of the GNU Affero
General Public License, section 13, concerning interaction through a network
will apply to the combination as such.</p>
<p style='text-align:justify'>14. Revised Versions of this
License.</p>
<p style='text-align:justify'>The Free Software Foundation may
publish revised and/or new versions of the GNU General Public License from time
to time. Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.</p>
<p style='text-align:justify'>Each version is given a
distinguishing version number. If the Program specifies that a certain numbered
version of the GNU General Public License &ldquo;or any later version&rdquo; applies to it,
you have the option of following the terms and conditions either of that
numbered version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the GNU General
Public License, you may choose any version ever published by the Free Software
Foundation.</p>
<p style='text-align:justify'>If the Program specifies that a
proxy can decide which future versions of the GNU General Public License can be
used, that proxy's public statement of acceptance of a version permanently
authorizes you to choose that version for the Program.</p>
<p style='text-align:justify'>Later license versions may give
you additional or different permissions. However, no additional obligations are
imposed on any author or copyright holder as a result of your choosing to
follow a later version.</p>
<p style='text-align:justify'>15. Disclaimer of Warranty.</p>
<p style='text-align:justify'>THERE IS NO WARRANTY FOR THE
PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
PROGRAM &ldquo;AS IS&rdquo; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU
ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</p>
<p style='text-align:justify'>16. Limitation of Liability.</p>
<p style='text-align:justify'>IN NO EVENT UNLESS REQUIRED BY
APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER
PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO
YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES
SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH
ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.</p>
<p style='text-align:justify'>17. Interpretation of Sections 15
and 16.</p>
<p style='text-align:justify'>If the disclaimer of warranty and
limitation of liability provided above cannot be given local legal effect
according to their terms, reviewing courts shall apply local law that most
closely approximates an absolute waiver of all civil liability in connection
with the Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.</p>
<p style='text-align:justify'>END OF TERMS AND CONDITIONS</p>
<p style='text-align:justify'>How to Apply These Terms to Your
New Programs</p>
<p style='text-align:justify'>If you develop a new program, and
you want it to be of the greatest possible use to the public, the best way to
achieve this is to make it free software which everyone can redistribute and
change under these terms.</p>
<p style='text-align:justify'>To do so, attach the following
notices to the program. It is safest to attach them to the start of each source
file to most effectively state the exclusion of warranty; and each file should
have at least the &ldquo;copyright&rdquo; line and a pointer to where the full notice is found.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;&lt;one line to give the program's name and
a brief idea of what it does.&gt;</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;Copyright (C) &lt;year&gt; &lt;name of author&gt;</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;This program is free software: you can
redistribute it and/or modify</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;it under the terms of the GNU General
Public License as published by</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;the Free Software Foundation, either
version 3 of the License, or</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;(at your option)
any later version.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;This program is distributed in the hope
that it will be useful,</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;but WITHOUT ANY WARRANTY; without even the
implied warranty of</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;GNU General Public License for more
details.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;You should have received a copy of the GNU
General Public License</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;along with this program. If not, see
&lt;https://www.gnu.org/licenses/&gt;.</p>
<p style='text-align:justify'>Also add information on how to
contact you by electronic and paper mail.</p>
<p style='text-align:justify'>If the program does terminal
interaction, make it output a short notice like this when it starts in an
interactive mode:</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;&lt;program&gt; Copyright (C) &lt;year&gt;
&lt;name of author&gt;</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;This program comes with ABSOLUTELY NO
WARRANTY; for details type `show w'.</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;This is free software, and you are welcome
to redistribute it</p>
<p style='text-align:justify'>&nbsp;&nbsp;&nbsp;&nbsp;under certain conditions; type `show c' for
details.</p>
<p style='text-align:justify'>The hypothetical commands `show
w' and `show c' should show the appropriate parts of the General Public
License. Of course, your program's commands might be different; for a GUI
interface, you would use an &ldquo;about box&rdquo;.</p>
<p style='text-align:justify'>You should also get your employer
(if you work as a programmer) or school, if any, to sign a &ldquo;copyright
disclaimer&rdquo; for the program, if necessary. For more information on this, and
how to apply and follow the GNU GPL, see &lt;https://www.gnu.org/licenses/&gt;.</p>
<p style='text-align:justify'>The GNU General Public License
does not permit incorporating your program into proprietary programs. If your
program is a subroutine library, you may consider it more useful to permit
linking proprietary applications with the library. If this is what you want to
do, use the GNU Lesser General Public License instead of this License. But
first, please read &lt;https://www.gnu.org/licenses/why-not-lgpl.html&gt;.</p>
<p>______________</p>
<p>COPYING file last revised: July 22, 2022</p>
</body>
</html>

601
doc/License-gpl-3.0.rtf Normal file
View file

@ -0,0 +1,601 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f43\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0502040204020203}Segoe UI;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f414\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f415\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
{\f417\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f418\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f419\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f420\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}
{\f421\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f422\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f474\fbidi \fswiss\fcharset238\fprq2 Segoe UI CE;}{\f475\fbidi \fswiss\fcharset204\fprq2 Segoe UI Cyr;}
{\f477\fbidi \fswiss\fcharset161\fprq2 Segoe UI Greek;}{\f478\fbidi \fswiss\fcharset162\fprq2 Segoe UI Tur;}{\f479\fbidi \fswiss\fcharset177\fprq2 Segoe UI (Hebrew);}{\f480\fbidi \fswiss\fcharset178\fprq2 Segoe UI (Arabic);}
{\f481\fbidi \fswiss\fcharset186\fprq2 Segoe UI Baltic;}{\f482\fbidi \fswiss\fcharset163\fprq2 Segoe UI (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}
{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}
{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;}{\*\defchp \f31506\fs22 }{\*\defpap
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0
\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{
\s15\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af43\afs18\alang1025 \ltrch\fcs0 \f43\fs18\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
\sbasedon0 \snext15 \slink16 \ssemihidden \sunhideused \styrsid6191640 Balloon Text;}{\*\cs16 \additive \rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \f43\fs18 \sbasedon10 \slink15 \slocked \ssemihidden \styrsid6191640 Balloon Text Char;}}{\*\rsidtbl \rsid204811
\rsid1179671\rsid2054772\rsid4488156\rsid5245440\rsid5458651\rsid6191640\rsid6243413\rsid6826983\rsid6827025\rsid7414225\rsid7868682\rsid9137682\rsid9575835\rsid10183799\rsid10356037\rsid13858007\rsid15224405}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0
\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\revisions\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1
\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1
\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
\asianbrkrule\rsidroot10183799\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0
{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang
{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}
\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10183799 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1
\af31507 \ltrch\fcs0 \insrsid5245440 COPYING file for VirtualBox versions 7.0 and later versions that include this file
\par
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 Preliminary notes:
\par
\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6191640 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 1) }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983
The majority of the code in the VirtualBox base }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid7414225 package}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983 is licensed under the GNU General Public License, version 3}{\rtlch\fcs1 \af31507 \ltrch\fcs0
\insrsid10356037 (GPL)}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983 .}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983\charrsid6826983 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983 VirtualBox contain}{\rtlch\fcs1 \af31507 \ltrch\fcs0
\insrsid10356037 s}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983 many components developed by Oracle and various third parties. The license for each component is located in the licensing documentation and/or in the component's source code. }{
\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811
\par
\par 2) }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 As an exception to the }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 reciprocal license }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 obligations of the }{\rtlch\fcs1 \af31507 \ltrch\fcs0
\insrsid10183799\charrsid15224405 GPL listed below}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 , you may use any }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 VirtualB}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037
ox header file that is marked by Oracle as licensed under both the GPL and the Common Development and Distribution License version 1}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 .}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 0 (CDDL)}{
\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799\charrsid15224405 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 t}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 o invoke the unmodified VirtualB}{\rtlch\fcs1 \af31507 \ltrch\fcs0
\insrsid10356037 ox }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 libraries}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 .}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799
In other words, calling such a multi-licensed interface }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 by dynamically linking to the unmodified VirtualBox libraries }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 is considered}{\rtlch\fcs1
\af31507 \ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 a }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 normal use of VirtualBox and does not turn the calling code into a derived work}{\rtlch\fcs1 \af31507
\ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 of VirtualBox. }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799\charrsid15224405 In particular, this applies to code that wants to extend}{\rtlch\fcs1 \af31507
\ltrch\fcs0 \insrsid6191640\charrsid15224405 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799\charrsid15224405 VirtualBox by way of the Extension Pack mechanism declared in the ExtPack.h}{\rtlch\fcs1 \af31507 \ltrch\fcs0
\insrsid6191640\charrsid15224405 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799\charrsid15224405 header file.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid1179671 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid7414225 }{\rtlch\fcs1 \af31507 \ltrch\fcs0
\insrsid10183799
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10183799 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799
\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4488156 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 3}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799
) Whoever creates or distributes a derived work based on VirtualBox is not}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 obligated to grant the above exceptions for such a version. The GPL }{
\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 permits you to release}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 a modified version without the above exception; in addition, Oracle}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 }{
\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 hereby also allows you to release a modified version which carries forward these}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 exceptions.
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10183799 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 Oracle }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 America, Inc.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799
\par
\par ---
\par
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 G}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 NU GENERAL PUBLIC LICENSE
\par
\par Version 3, 29 June 2007
\par
\par Copyright \'a9 2007 Free Software Foundation, Inc. <https://fsf.org/>
\par
\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9575835 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9575835
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 Preamble
\par The GNU General Public License is a free, copyleft license for software and other kinds of works.
\par
\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9575835 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By
contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for
most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025
\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9575835 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure
that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you
can do these things.
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025
\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9575835 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025
To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: respons
ibilities to respect the freedom of others.
\par
\par For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get
the source code. And you must show them these terms so they know their rights.
\par
\par Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.
\par
\par For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that th
eir problems will not be attributed erroneously to authors of previous versions.
\par
\par Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally inc
ompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this vers
ion of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.
\par
\par Finally, e
very program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free p
rogram could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.
\par
\par The precise terms and conditions for copying, distribution and modification follow.
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9575835
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 TERMS AND CONDITIONS
\par 0. Definitions.
\par
\par \'93This License\'94 refers to version 3 of the GNU General Public License.
\par
\par \'93Copyright\'94 also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
\par
\par \'93The Program\'94 refers to any copyrightable work licensed under this License. Each licensee is addressed as \'93you\'94. \'93Licensees\'94 and \'93recipients\'94 may be individuals or organizations.
\par
\par To \'93modify\'94 a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a \'93modified version\'94 of the earlier work or a work \'93
based on\'94 the earlier work.
\par
\par A \'93covered work\'94 means either the unmodified Program or a work based on the Program.
\par
\par To \'93propagate\'94 a work means to do anything with
it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modifica
tion), making available to the public, and in some countries other activities as well.
\par
\par To \'93convey\'94 a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
\par
\par An interactive user interface displays \'93Appropriate Legal Notices\'94 to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user t
hat there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as
a menu, a prominent item in the list meets this criterion.
\par 1. Source Code.
\par
\par The \'93source code\'94 for a work means the preferred form of the work for making modifications to it. \'93Object code\'94 means any non-source form of a work.
\par
\par A \'93Standard Interface\'94 means a
n interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
\par
\par The \'93System Libraries\'94
of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major C
omponent, or to implement a Standard Interface for which an implementation is available to the public in source code form. A \'93Major Component\'94
, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
\par
\par The \'93Corresponding Source\'94 for a work in object code form means all the source code needed to generate, install, and (
for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmod
i
fied in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subpro
grams that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
\par
\par The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
\par
\par The Corresponding Source for a work in source code form is that same work.
\par 2. Basic Permissions.
\par
\par All rights granted under this License are granted for the term of copyright on the Program, and are irrevocab
le provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a cove
red work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
\par
\par You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You
may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for wh
i
ch you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their
relationship with you.
\par
\par Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
\par 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
\par
\par No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or r
estricting circumvention of such measures.
\par
\par When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the
covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
\par 4. Conveying Verbatim Copies.
\par
\par You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License an
d any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
\par
\par You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
\par 5. Conveying Modified Source Versions.
\par
\par You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
\par
\par a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
\par b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to \'93keep intact all notices\'94.
\par c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. Th
is License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
\par d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
\par
\par A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a
volume of a storage or distribution medium, is called an \'93aggregate\'94
if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered
work in an aggregate does not cause this License to apply to the other parts of the aggregate.
\par 6. Conveying Non-Source Forms.
\par
\par You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
\par
\par a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
\par b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as lo
ng as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical m
edium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
\par c) Convey individual cop
ies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
\par d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy
the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided y
o
u maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these require
ments.
\par e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
\par
\par A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
\par
\par A \'93User Product\'94 is either (1) a \'93consumer product\'94, which means any tangible personal property whi
ch is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a parti
cular product received by a particular user, \'93normally used\'94
refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to u
se, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
\par
\par \'93Installation Information\'94 for a Us
er Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice t
o ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
\par
\par If you convey an object code work under this section in, or with, or specifically for use in, a User P
roduct, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Correspondin
g
Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work
has been installed in ROM).
\par
\par The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Pro
duct in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
\par
\par Corresp
onding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or ke
y for unpacking, reading or copying.
\par 7. Additional Terms.
\par
\par \'93Additional permissions\'94 are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program
shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire P
rogram remains governed by this License without regard to the additional permissions.
\par
\par When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be
written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
\par
\par Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
\par
\par a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
\par b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
\par c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
\par d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
\par e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
\par f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions o
f it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
\par
\par All other non-permissive additional terms are considered \'93further restrictions\'94
within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license docu
ment contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or
conveying.
\par
\par If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
\par
\par Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
\par 8. Termination.
\par
\par You may not propagate or modify a covered work except as expressly provided un
der this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
\par
\par However, if you cease all violation
of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you
of the violation by some reasonable means prior to 60 days after the cessation.
\par
\par Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the
first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
\par
\par Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
\par 9. Acceptance Not Required for Having Copies.
\par
\par You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise
does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work,
you indicate your acceptance of this License to do so.
\par 10. Automatic Licensing of Downstream Recipients.
\par
\par Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that wor
k, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
\par
\par An \'93entity transaction\'94 is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organi
zation, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or co
uld give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
\par
\par You may not impose any further restrictions on the
exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or count
erclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
\par 11. Patents.
\par
\par A \'93contributor\'94 is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's \'93contributor version\'94.
\par
\par A contributor's \'93essential patent claims\'94 are all patent claims owned or controlled by the contributor, whether already
acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the
contributor version. For purposes of this definition, \'93control\'94 includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
\par
\par Each contributor grants you a non-exclusive, worldwide, royalty-free patent licens
e under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
\par
\par In the following three paragraphs, a \'93patent license\'94 is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To \'93
grant\'94 such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
\par
\par If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly
available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a
manner consistent with the requirements of this License, to extend the patent license to downstream recipients. \'93Knowingly relying\'94
means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recip
ient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
\par
\par If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by
procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatica
lly extended to all recipients of the covered work and works based on it.
\par
\par A patent license is \'93discriminatory\'94 if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the r
ights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on th
e
extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (o
r copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
\par
\par Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
\par 12. No Surrender of Others' Freedom.
\par
\par If conditions are imposed on you (wheth
er by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License
a
nd any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satis
fy both those terms and this License would be to refrain entirely from conveying the Program.
\par 13. Use with the GNU Affero General Public License.
\par
\par Notwithstanding any other provision of this License, you have permission to link or combine any covered work w
ith a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirement
s of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.
\par 14. Revised Versions of this License.
\par
\par The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
\par
\par Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License \'93or any later version\'94
applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation.
If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
\par
\par If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
\par
\par Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
\par 15. Disclaimer of Warranty.
\par
\par THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \'93AS IS\'94
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENT
IRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
\par 16. Limitation of Liability.
\par
\par IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INAB
I
LITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN A
DVISED OF THE POSSIBILITY OF SUCH DAMAGES.
\par 17. Interpretation of Sections 15 and 16.
\par
\par If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local la
w that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
\par
\par END OF TERMS AND CONDITIONS
\par How to Apply These Terms to Your New Programs
\par
\par If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
\par
\par To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the \'93copyright\'94
line and a pointer to where the full notice is found.
\par
\par <one line to give the program's name and a brief idea of what it does.>
\par Copyright (C) <year> <name of author>
\par
\par This program is free software: you can redistribute it and/or modify
\par it under the terms of the GNU General Public License as published by
\par the Free Software Foundation, either version 3 of the License, or
\par (at your option) any later version.
\par
\par This program is distributed in the hope that it will be useful,
\par but WITHOUT ANY WARRANTY; without even the implied warranty of
\par MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\par GNU General Public License for more details.
\par
\par You should have received a copy of the GNU General Public License
\par along with this program. If not, see <https://www.gnu.org/licenses/>.
\par
\par Also add information on how to contact you by electronic and paper mail.
\par
\par If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
\par
\par <program> Copyright (C) <year> <name of author>
\par This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
\par This is free software, and you are welcome to redistribute it
\par under certain conditions; type `show c' for details.
\par
\par The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an \'93about box\'94.
\par
\par You should also get your employer (if you work as a programmer) or school, if any, to sign a \'93copyright disclaimer\'94 for the program, if necessary. For more information on this, and how to apply and follow
the GNU GPL, see <https://www.gnu.org/licenses/>.
\par
\par The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary a
pplications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <https://www.gnu.org/licenses/why-not-lgpl.html>.
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440
\par ______________
\par
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9575835 COPYING }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 file last revised: July 22, 2022
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210007b740aaca0600008f1a0000160000007468656d652f7468656d652f
7468656d65312e786d6cec595b8bdb46147e2ff43f08bd3bbe49be2cf1065bb69336bb49889d943cceda636bb2238dd18c776342a0244f7d2914d2d28706fad6
87521a68a0a12ffd310b1bdaf447f4cc489667ec71f6420aa1640d8b34face996fce39face48ba7aed51449d239c70c2e2965bbe52721d1c8fd898c4d3967b6f
d82f345c870b148f1165316eb90bccdd6bbb9f7e7215ed881047d801fb98efa0961b0a31db2916f9088611bfc26638866b13964448c069322d8e13740c7e235a
ac944ab5628448ec3a318ac0ededc9848cb033942edddda5f31e85d358703930a2c940bac68685c28e0fcb12c1173ca089738468cb8579c6ec78881f09d7a188
0bb8d0724beacf2dee5e2da29dcc888a2db69a5d5ffd657699c1f8b0a2e64ca607f9a49ee77bb576ee5f01a8d8c4f5eabd5aaf96fb5300341ac14a532eba4fbf
d3ec74fd0cab81d2438bef6ebd5b2d1b78cd7f758373db973f03af40a97f6f03dfef07104503af4029dedfc07b5ebd1278065e81527c6d035f2fb5bb5eddc02b
5048497cb8812ef9b56ab05c6d0e99307ac30a6ffa5ebf5ec99caf50500d7975c929262c16db6a2d420f59d2078004522448ec88c50c4fd008aa3840941c24c4
d923d3100a6f8662c661b85429f54b55f82f7f9e3a5211413b1869d6921730e11b43928fc34709998996fb39787535c8e9ebd7274f5f9d3cfdfde4d9b393a7bf
66732b5786dd0d144f75bbb73f7df3cf8b2f9dbf7ffbf1edf36fd3a9d7f15cc7bff9e5ab377ffcf92ef7b0e255284ebf7bf9e6d5cbd3efbffeebe7e716efed04
1de8f0218930776ee163e72e8b608116fef820b998c5304444b768c7538e622467b1f8ef89d040df5a208a2cb80e36e3783f01a9b101afcf1f1a8407613217c4
e2f1661819c07dc6688725d628dc947369611ecee3a97df264aee3ee2274649b3b40b191e5de7c061a4b6c2e83101b34ef50140b34c531168ebcc60e31b6acee
0121465cf7c928619c4d84f380381d44ac21199203a39a56463748047959d80842be8dd8ecdf773a8cda56ddc5472612ee0d442de487981a61bc8ee602453697
4314513de07b48843692834532d2713d2e20d3534c99d31b63ce6d36b71358af96f49b2033f6b4efd345642213410e6d3ef710633ab2cb0e831045331b7640e2
50c77ec60fa144917387091b7c9f9977883c873ca0786bbaef136ca4fb6c35b8070aab535a1588bc324f2cb9bc8e9951bf83059d20aca4061a80a1eb1189cf14
f93579f7ff3b7907113dfde1856545ef47d2ed8e8d7c5c50ccdb09b1de4d37d6247c1b6e5db803968cc987afdb5d348fef60b855369bd747d9fe28dbeeff5eb6
b7ddcfef5fac57fa0cd22db7ade9765d6ddea3ad7bf709a174201614ef71b57de7d095c67d189476eab915e7cf72b3100ee59d0c1318b86982948d9330f10511
e1204433d8e3975de964ca33d753eecc1887adbf1ab6fa96783a8ff6d9387d642d97e5e3692a1e1c89d578c9cfc7e17143a4e85a7df51896bb576ca7ea717949
40da5e8484369949a26a21515f0eca20a98773089a85845ad97b61d1b4b06848f7cb546db0006a795660dbe4c066abe5fa1e9880113c55218ac7324f69aa97d9
55c97c9f99de164ca302600fb1ac8055a69b92ebd6e5c9d5a5a5768e4c1b24b4723349a8c8a81ec64334c65975cad1f3d0b868ae9bab941af46428d47c505a2b
1af5c6bb585c36d760b7ae0d34d69582c6ce71cbad557d2899119ab5dc093cfac3613483dae172bb8be814de9f8d4492def097519659c24517f1300db8129d54
0d222270e25012b55cb9fc3c0d34561aa2b8952b20081f2cb926c8ca87460e926e26194f267824f4b46b2332d2e929287caa15d6abcafcf26069c9e690ee4138
3e760ee83cb98ba0c4fc7a5906704c38bc012aa7d11c1378a5990bd9aafed61a5326bbfa3b455543e938a2b310651d4517f314aea43ca7a3cef2186867d99a21
a05a48b2467830950d560faad14df3ae9172d8da75cf369291d34473d5330d55915dd3ae62c60ccb36b016cbcb35798dd532c4a0697a874fa57b5d729b4bad5b
db27e45d02029ec7cfd275cfd110346aabc90c6a92f1a60c4bcdce46cddeb15ce019d4ced32434d5af2dddaec52def11d6e960f0529d1fecd6ab168626cb7da5
8ab4faf6a17f9e60070f413cbaf022784e0557a9848f0f09820dd140ed4952d9805be491c86e0d3872e60969b98f4b7edb0b2a7e502835fc5ec1ab7aa542c36f
570b6ddfaf967b7eb9d4ed549e4063116154f6d3ef2e7d780d4517d9d71735bef105265abe69bb32625191a92f2c45455c7d812957b67f81710888cee35aa5df
ac363bb542b3daee17bc6ea7516806b54ea15b0beadd7e37f01bcdfe13d7395260af5d0dbc5aaf51a89583a0e0d54a927ea359a87b954adbabb71b3daffd24db
c6c0ca53f9c86201e155bc76ff050000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72
656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c08
2e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd0
8a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa
4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f
6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72
656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f746865
6d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210007b740aaca0600008f1a00001600000000000000000000000000d60200
007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000000000
00d40900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cf0a00000000}
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text;
\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;
\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;
\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1;
\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision;
\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;
\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1;
\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;
\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;
\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;
\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;
\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;
\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;
\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000
02000000180000004d73786d6c322e534158584d4c5265616465722e362e30000000000000000000000e0000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdffffff04000000feffffff05000000fefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff010000000c6ad98892f1d411a65f0040963251e5000000000000000000000000508c
c4d033a8d80103000000c0020000000000004d0073006f004400610074006100530074006f0072006500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000101ffffffffffffffff020000000000000000000000000000000000000000000000508cc4d033a8d801
508cc4d033a8d801000000000000000000000000de00590055005100d70053005200c600cc00d4004700ce005500dc005300ce00c200d900500033003000c0003d003d000000000000000000000000000000000032000101ffffffffffffffff030000000000000000000000000000000000000000000000508cc4d033a8
d801508cc4d033a8d8010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff04000000ffffffff000000000000000000000000000000000000000000000000
00000000000000000000000000000000320100000000000001000000020000000300000004000000feffffff060000000700000008000000090000000a000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e3c623a536f757263657320786d6c6e733a623d22687474703a2f2f736368656d61732e6f70656e78
6d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f6772617068792220786d6c6e733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222053656c
65637465645374796c653d225c415041536978746845646974696f6e4f66666963654f6e6c696e652e78736c22205374796c654e616d653d22415041222056657273696f6e3d2236223e3c2f623a536f75726365733e00000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f6469
6e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b44443130383546392d363632342d343142332d414535332d4334414538423933444436417d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70
656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000
0000000000000000000000000000000000000000000000000000000000000500000055010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746f6d586d6c223e3c64733a736368656d61526566733e3c64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f7267
2f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f72654974656d3e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}

663
doc/License-gpl-3.0.txt Normal file
View file

@ -0,0 +1,663 @@
OPYING file for VirtualBox versions 7.0 and later versions that include this
file
Preliminary notes:
1) The majority of the code in the VirtualBox base package is licensed under
the GNU General Public License, version 3 (GPL). VirtualBox contains many
components developed by Oracle and various third parties. The license for
each component is located in the licensing documentation and/or in the
component's source code.
2) As an exception to the reciprocal license obligations of the GPL listed
below, you may use any VirtualBox header file that is marked by Oracle as
licensed under both the GPL and the Common Development and Distribution
License version 1.0 (CDDL) to invoke the unmodified VirtualBox libraries. In
other words, calling such a multi-licensed interface by dynamically linking
to the unmodified VirtualBox libraries is considered a normal use of
VirtualBox and does not turn the calling code into a derived work of
VirtualBox. In particular, this applies to code that wants to extend
VirtualBox by way of the Extension Pack mechanism declared in the ExtPack.h
header file.
3) Whoever creates or distributes a derived work based on VirtualBox is not
obligated to grant the above exceptions for such a version. The GPL permits
you to release a modified version without the above exception; in addition,
Oracle hereby also allows you to release a modified version which carries
forward these exceptions.
Oracle America, Inc.
---
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for software and
other kinds of works.
The licenses for most software and other practical works are designed to take
away your freedom to share and change the works. By contrast, the GNU General
Public License is intended to guarantee your freedom to share and change all
versions of a program--to make sure it remains free software for all its
users. We, the Free Software Foundation, use the GNU General Public License
for most of our software; it applies also to any other work released this way
by its authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom
to distribute copies of free software (and charge for them if you wish), that
you receive source code or can get it if you want it, that you can change the
software or use pieces of it in new free programs, and that you know you can
do these things.
To protect your rights, we need to prevent others from denying you these
rights or asking you to surrender the rights. Therefore, you have certain
responsibilities if you distribute copies of the software, or if you modify
it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or
for a fee, you must pass on to the recipients the same freedoms that you
received. You must make sure that they, too, receive or can get the source
code. And you must show them these terms so they know their rights.
Developers that use the GNU GPL protect your rights with two steps: (1)
assert copyright on the software, and (2) offer you this License giving you
legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains that
there is no warranty for this free software. For both users' and authors'
sake, the GPL requires that modified versions be marked as changed, so that
their problems will not be attributed erroneously to authors of previous
versions.
Some devices are designed to deny users access to install or run modified
versions of the software inside them, although the manufacturer can do so.
This is fundamentally incompatible with the aim of protecting users' freedom
to change the software. The systematic pattern of such abuse occurs in the
area of products for individuals to use, which is precisely where it is most
unacceptable. Therefore, we have designed this version of the GPL to prohibit
the practice for those products. If such problems arise substantially in
other domains, we stand ready to extend this provision to those domains in
future versions of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents. States
should not allow patents to restrict development and use of software on
general-purpose computers, but in those that do, we wish to avoid the special
danger that patents applied to a free program could make it effectively
proprietary. To prevent this, the GPL assures that patents cannot be used to
render the program non-free.
The precise terms and conditions for copying, distribution and modification
follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this License.
Each licensee is addressed as "you". "Licensees" and "recipients" may be
individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work in a
fashion requiring copyright permission, other than the making of an exact
copy. The resulting work is called a "modified version" of the earlier work
or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based on the
Program.
To "propagate" a work means to do anything with it that, without permission,
would make you directly or secondarily liable for infringement under
applicable copyright law, except executing it on a computer or modifying a
private copy. Propagation includes copying, distribution (with or without
modification), making available to the public, and in some countries other
activities as well.
To "convey" a work means any kind of propagation that enables other parties
to make or receive copies. Mere interaction with a user through a computer
network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices" to the
extent that it includes a convenient and prominently visible feature that (1)
displays an appropriate copyright notice, and (2) tells the user that there
is no warranty for the work (except to the extent that warranties are
provided), that licensees may convey the work under this License, and how to
view a copy of this License. If the interface presents a list of user
commands or options, such as a menu, a prominent item in the list meets this
criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work for making
modifications to it. "Object code" means any non-source form of a work.
A "Standard Interface" means an interface that either is an official standard
defined by a recognized standards body, or, in the case of interfaces
specified for a particular programming language, one that is widely used
among developers working in that language.
The "System Libraries" of an executable work include anything, other than the
work as a whole, that (a) is included in the normal form of packaging a Major
Component, but which is not part of that Major Component, and (b) serves only
to enable use of the work with that Major Component, or to implement a
Standard Interface for which an implementation is available to the public in
source code form. A "Major Component", in this context, means a major
essential component (kernel, window system, and so on) of the specific
operating system (if any) on which the executable work runs, or a compiler
used to produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all the
source code needed to generate, install, and (for an executable work) run the
object code and to modify the work, including scripts to control those
activities. However, it does not include the work's System Libraries, or
general-purpose tools or generally available free programs which are used
unmodified in performing those activities but which are not part of the work.
For example, Corresponding Source includes interface definition files
associated with source files for the work, and the source code for shared
libraries and dynamically linked subprograms that the work is specifically
designed to require, such as by intimate data communication or control flow
between those subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate
automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright
on the Program, and are irrevocable provided the stated conditions are met.
This License explicitly affirms your unlimited permission to run the
unmodified Program. The output from running a covered work is covered by this
License only if the output, given its content, constitutes a covered work.
This License acknowledges your rights of fair use or other equivalent, as
provided by copyright law.
You may make, run and propagate covered works that you do not convey, without
conditions so long as your license otherwise remains in force. You may convey
covered works to others for the sole purpose of having them make
modifications exclusively for you, or provide you with facilities for running
those works, provided that you comply with the terms of this License in
conveying all material for which you do not control copyright. Those thus
making or running the covered works for you must do so exclusively on your
behalf, under your direction and control, on terms that prohibit them from
making any copies of your copyrighted material outside their relationship
with you.
Conveying under any other circumstances is permitted solely under the
conditions stated below. Sublicensing is not allowed; section 10 makes it
unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure
under any applicable law fulfilling obligations under article 11 of the WIPO
copyright treaty adopted on 20 December 1996, or similar laws prohibiting or
restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention is
effected by exercising rights under this License with respect to the covered
work, and you disclaim any intention to limit operation or modification of
the work as a means of enforcing, against the work's users, your or third
parties' legal rights to forbid circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive
it, in any medium, provided that you conspicuously and appropriately publish
on each copy an appropriate copyright notice; keep intact all notices stating
that this License and any non-permissive terms added in accord with section 7
apply to the code; keep intact all notices of the absence of any warranty;
and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you
may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce
it from the Program, in the form of source code under the terms of section 4,
provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it,
and giving a relevant date.
b) The work must carry prominent notices stating that it is released
under this License and any conditions added under section 7. This requirement
modifies the requirement in section 4 to "keep intact all notices".
c) You must license the entire work, as a whole, under this License to
anyone who comes into possession of a copy. This License will therefore
apply, along with any applicable section 7 additional terms, to the whole of
the work, and all its parts, regardless of how they are packaged. This
License gives no permission to license the work in any other way, but it does
not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive interfaces
that do not display Appropriate Legal Notices, your work need not make them
do so.
A compilation of a covered work with other separate and independent works,
which are not by their nature extensions of the covered work, and which are
not combined with it such as to form a larger program, in or on a volume of a
storage or distribution medium, is called an "aggregate" if the compilation
and its resulting copyright are not used to limit the access or legal rights
of the compilation's users beyond what the individual works permit. Inclusion
of a covered work in an aggregate does not cause this License to apply to the
other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections
4 and 5, provided that you also convey the machine-readable Corresponding
Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the Corresponding
Source fixed on a durable physical medium customarily used for software
interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a written offer,
valid for at least three years and valid for as long as you offer spare parts
or customer support for that product model, to give anyone who possesses the
object code either (1) a copy of the Corresponding Source for all the
software in the product that is covered by this License, on a durable
physical medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this conveying of
source, or (2) access to copy the Corresponding Source from a network server
at no charge.
c) Convey individual copies of the object code with a copy of the written
offer to provide the Corresponding Source. This alternative is allowed only
occasionally and noncommercially, and only if you received the object code
with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place
(gratis or for a charge), and offer equivalent access to the Corresponding
Source in the same way through the same place at no further charge. You need
not require recipients to copy the Corresponding Source along with the object
code. If the place to copy the object code is a network server, the
Corresponding Source may be on a different server (operated by you or a third
party) that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the Corresponding
Source, you remain obligated to ensure that it is available for as long as
needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you
inform other peers where the object code and Corresponding Source of the work
are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from
the Corresponding Source as a System Library, need not be included in
conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any tangible
personal property which is normally used for personal, family, or household
purposes, or (2) anything designed or sold for incorporation into a dwelling.
In determining whether a product is a consumer product, doubtful cases shall
be resolved in favor of coverage. For a particular product received by a
particular user, "normally used" refers to a typical or common use of that
class of product, regardless of the status of the particular user or of the
way in which the particular user actually uses, or expects or is expected to
use, the product. A product is a consumer product regardless of whether the
product has substantial commercial, industrial or non-consumer uses, unless
such uses represent the only significant mode of use of the product.
"Installation Information" for a User Product means any methods, procedures,
authorization keys, or other information required to install and execute
modified versions of a covered work in that User Product from a modified
version of its Corresponding Source. The information must suffice to ensure
that the continued functioning of the modified object code is in no case
prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as part of
a transaction in which the right of possession and use of the User Product is
transferred to the recipient in perpetuity or for a fixed term (regardless of
how the transaction is characterized), the Corresponding Source conveyed
under this section must be accompanied by the Installation Information. But
this requirement does not apply if neither you nor any third party retains
the ability to install modified object code on the User Product (for example,
the work has been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates for
a work that has been modified or installed by the recipient, or for the User
Product in which it has been modified or installed. Access to a network may
be denied when the modification itself materially and adversely affects the
operation of the network or violates the rules and protocols for
communication across the network.
Corresponding Source conveyed, and Installation Information provided, in
accord with this section must be in a format that is publicly documented (and
with an implementation available to the public in source code form), and must
require no special password or key for unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this License
by making exceptions from one or more of its conditions. Additional
permissions that are applicable to the entire Program shall be treated as
though they were included in this License, to the extent that they are valid
under applicable law. If additional permissions apply only to part of the
Program, that part may be used separately under those permissions, but the
entire Program remains governed by this License without regard to the
additional permissions.
When you convey a copy of a covered work, you may at your option remove any
additional permissions from that copy, or from any part of it. (Additional
permissions may be written to require their own removal in certain cases when
you modify the work.) You may place additional permissions on material, added
by you to a covered work, for which you have or can give appropriate
copyright permission.
Notwithstanding any other provision of this License, for material you add to
a covered work, you may (if authorized by the copyright holders of that
material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms
of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author
attributions in that material or in the Appropriate Legal Notices displayed
by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in reasonable
ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some trade
names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by
anyone who conveys the material (or modified versions of it) with contractual
assumptions of liability to the recipient, for any liability that these
contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is governed
by this License along with a term that is a further restriction, you may
remove that term. If a license document contains a further restriction but
permits relicensing or conveying under this License, you may add to a covered
work material governed by the terms of that license document, provided that
the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must
place, in the relevant source files, a statement of the additional terms that
apply to those files, or a notice indicating where to find the applicable
terms.
Additional terms, permissive or non-permissive, may be stated in the form of
a separately written license, or stated as exceptions; the above requirements
apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided
under this License. Any attempt otherwise to propagate or modify it is void,
and will automatically terminate your rights under this License (including
any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a
particular copyright holder is reinstated (a) provisionally, unless and until
the copyright holder explicitly and finally terminates your license, and (b)
permanently, if the copyright holder fails to notify you of the violation by
some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated
permanently if the copyright holder notifies you of the violation by some
reasonable means, this is the first time you have received notice of
violation of this License (for any work) from that copyright holder, and you
cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses
of parties who have received copies or rights from you under this License. If
your rights have been terminated and not permanently reinstated, you do not
qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy
of the Program. Ancillary propagation of a covered work occurring solely as a
consequence of using peer-to-peer transmission to receive a copy likewise
does not require acceptance. However, nothing other than this License grants
you permission to propagate or modify any covered work. These actions
infringe copyright if you do not accept this License. Therefore, by modifying
or propagating a covered work, you indicate your acceptance of this License
to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a
license from the original licensors, to run, modify and propagate that work,
subject to this License. You are not responsible for enforcing compliance by
third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered work
results from an entity transaction, each party to that transaction who
receives a copy of the work also receives whatever licenses to the work the
party's predecessor in interest had or could give under the previous
paragraph, plus a right to possession of the Corresponding Source of the work
from the predecessor in interest, if the predecessor has it or can get it
with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights
granted or affirmed under this License. For example, you may not impose a
license fee, royalty, or other charge for exercise of rights granted under
this License, and you may not initiate litigation (including a cross-claim or
counterclaim in a lawsuit) alleging that any patent claim is infringed by
making, using, selling, offering for sale, or importing the Program or any
portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this License
of the Program or a work on which the Program is based. The work thus
licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims owned or
controlled by the contributor, whether already acquired or hereafter
acquired, that would be infringed by some manner, permitted by this License,
of making, using, or selling its contributor version, but do not include
claims that would be infringed only as a consequence of further modification
of the contributor version. For purposes of this definition, "control"
includes the right to grant patent sublicenses in a manner consistent with
the requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent
license under the contributor's essential patent claims, to make, use, sell,
offer for sale, import and otherwise run, modify and propagate the contents
of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent (such
as an express permission to practice a patent or covenant not to sue for
patent infringement). To "grant" such a patent license to a party means to
make such an agreement or commitment not to enforce a patent against the
party.
If you convey a covered work, knowingly relying on a patent license, and the
Corresponding Source of the work is not available for anyone to copy, free of
charge and under the terms of this License, through a publicly available
network server or other readily accessible means, then you must either (1)
cause the Corresponding Source to be so available, or (2) arrange to deprive
yourself of the benefit of the patent license for this particular work, or
(3) arrange, in a manner consistent with the requirements of this License, to
extend the patent license to downstream recipients. "Knowingly relying" means
you have actual knowledge that, but for the patent license, your conveying
the covered work in a country, or your recipient's use of the covered work in
a country, would infringe one or more identifiable patents in that country
that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement,
you convey, or propagate by procuring conveyance of, a covered work, and
grant a patent license to some of the parties receiving the covered work
authorizing them to use, propagate, modify or convey a specific copy of the
covered work, then the patent license you grant is automatically extended to
all recipients of the covered work and works based on it.
A patent license is "discriminatory" if it does not include within the scope
of its coverage, prohibits the exercise of, or is conditioned on the non-
exercise of one or more of the rights that are specifically granted under
this License. You may not convey a covered work if you are a party to an
arrangement with a third party that is in the business of distributing
software, under which you make payment to the third party based on the extent
of your activity of conveying the work, and under which the third party
grants, to any of the parties who would receive the covered work from you, a
discriminatory patent license (a) in connection with copies of the covered
work conveyed by you (or copies made from those copies), or (b) primarily for
and in connection with specific products or compilations that contain the
covered work, unless you entered into that arrangement, or that patent
license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any
implied license or other defenses to infringement that may otherwise be
available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not excuse
you from the conditions of this License. If you cannot convey a covered work
so as to satisfy simultaneously your obligations under this License and any
other pertinent obligations, then as a consequence you may not convey it at
all. For example, if you agree to terms that obligate you to collect a
royalty for further conveying from those to whom you convey the Program, the
only way you could satisfy both those terms and this License would be to
refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have permission to
link or combine any covered work with a work licensed under version 3 of the
GNU Affero General Public License into a single combined work, and to convey
the resulting work. The terms of this License will continue to apply to the
part which is the covered work, but the special requirements of the GNU
Affero General Public License, section 13, concerning interaction through a
network will apply to the combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the
GNU General Public License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to address
new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies that a certain numbered version of the GNU General Public License
"or any later version" applies to it, you have the option of following the
terms and conditions either of that numbered version or of any later version
published by the Free Software Foundation. If the Program does not specify a
version number of the GNU General Public License, you may choose any version
ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the
GNU General Public License can be used, that proxy's public statement of
acceptance of a version permanently authorizes you to choose that version for
the Program.
Later license versions may give you additional or different permissions.
However, no additional obligations are imposed on any author or copyright
holder as a result of your choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR
A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above
cannot be given local legal effect according to their terms, reviewing courts
shall apply local law that most closely approximates an absolute waiver of
all civil liability in connection with the Program, unless a warranty or
assumption of liability accompanies a copy of the Program in return for a
fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible
use to the public, the best way to achieve this is to make it free software
which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach
them to the start of each source file to most effectively state the exclusion
of warranty; and each file should have at least the "copyright" line and a
pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short notice like
this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show
w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands might
be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school, if
any, to sign a "copyright disclaimer" for the program, if necessary. For more
information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General Public
License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
______________
COPYING file last revised: July 22, 2022

149
doc/ReadMe-OS2.txt Normal file
View file

@ -0,0 +1,149 @@
VirtualBox for OS/2 OSE Edition ALPHA
=====================================
Version 1.5.51_OSE_27858
03.02.2008
This is an early development build of VirtualBox OSE Edition for OS/2.
Please backup your data and don't expect everything to be highly polished
and tuned just yet. If you find a *new* problem, meaning something
not listed below, please report it at http://forums.virtualbox.org.
This package is an official unofficial build of VirtualBox for OS/2.
It means that it is coordinated by volunteers from Sun Microsystems that
are still in touch with OS/2 and keep patching VirtualBox at their spare
time to make sure it runs and more or less works under OS/2.
PLEASE NOTE THAT THE OS/2 HOST (AND THEREFORE THE OS/2 VERSION OF
VIRTUALBOX) IS NOT OFFICIALLY SUPPORTED BY SUN MICROSYSTEMS! DO NOT
CONTACT SUN MICROSYSTEMS REGARDING THE OS/2 VERSION OF VIRTUALBOX NO
MATTER WHAT YOUR QUESTION IS ABOUT! THANK YOU FOR UNDERSTANDING.
Current Issues / TODOs
----------------------
* FE/Qt (Qt GUI frontend):
- Mouse pointer shape in mouse integration mode.
- NumLock/ScrollLock synchronization.
- Seamless mode (no top-level window transparency on OS/2).
- Keyboard driver to intercept system key combinations
(Alt+Tab etc.)
* Devices:
- Host Floppy/DVD.
- Audio.
- Host interface networking.
- Internal networking.
- USB proxying.
* Misc:
- Shared clipboard.
- Starting more than one VM simultaneously.
- Installer.
- VMX support.
- VBoxSDL (resizing/scaling/keyboard/slowness).
- Very slow Resume after Pause in real mode guest applications.
Also, please pay attention to the section called "OS/2 Specific Features"
below.
How to "Install" and Run
------------------------
1. Unpack this archive somewhere.
2. Make sure you have a dot (.) in your LIBPATH statement in CONFIG.SYS.
3. Put the following line at the beginning of your CONFIG.SYS
and reboot:
DEVICE=<somewhere>\VBoxDrv.sys
4. Go to <somewhere> and run VirtualBox.exe (Qt GUI frontend).
5. Note that by default VirtualBox stores all user data in the
%HOME%\.VirtualBox directory. If %HOME% is not set, it will use
the <boot_drive>:\.VirtualBox directory. In either case, you may
overwrite the location of this directory using the VBOX_USER_HOME
environment variable.
6. For best performance, it is recommended to install the VirtualBox
Guest Additions to the guest OS. The archive containing the ISO
image with Guest Additions for supported guest OSes (Windows,
Linux, OS/2) is named
VBoxGuestAdditions_XXXXX.zip
where XXXXX is the version number (it's best if it matches the version
number of this VirtualBox package).
Download this ZIP from the same location you took this archive from
and unpack the contents to the directory containing VirtualBox.exe.
After that, you can mount the Additions ISO in the Qt GUI by selecting
Devices -> Install Guest Additions... from the menu.
Documentation and Support
-------------------------
Please visit http://www.virtualbox.org where you can find a lot of useful
information about VirtualBox. There is a Community section where you can
try to request some help from other OS/2 users of VirtualBox.
You can download the User Manual for the latest official release of
VirtualBox using this URL:
http://www.virtualbox.org/download/UserManual.pdf
OS/2 Specific Features
----------------------
This section describes the features that are specific to the OS/2 version
of VirtualBox and may be absent in versions for other platforms.
1. System key combinations such as Alt+Tab, Ctrl+Esc are currently always
grabbed by the host and never reach the guest even when the keyboard
is captured. In order to send these combinations to the guest OS, use
the following shortcuts (where Host is the host key defined in the
global settings dialog):
Host+` (Tilde/Backquote) => Ctrl+Esc
Host+1 => Alt+Tab
Host+2 => Alt+Shift+Tab
2. If you use two or more keyboard layouts on the OS/2 host (e.g. English
and Russian), make sure that the keyboard is switched to the English
layer when you work in the VirtualBox VM console window. Otherwise, some
shortcuts that involve the Host key (in particluar, all Host+<latin_letter>
shortcuts like Host+Q) may not work. Please note that the guest keyboard
layout has nothing to do with the host layout so you will still be able to
switch layouts in the guest using its own means.
3. Make sure you do not do 'set LIBPATHSTRICT=T' in the environment you start
VirtualBox from: it will make the VirtualBox keyboard hook screw up your
host desktop (a workaround is to be found).
History of Changes
------------------
* 03.02.2008
- Initial release.
* XX.XX.XXXX
- Fixed: VirtualBox would hang or crash frequently on SMP machines in
ACPI mode.
- Fixed: VBoxSDL keyboard key event to scan code conversion [contributed
by Paul Smedley].

47
doc/ReadMe-Solaris.txt Normal file
View file

@ -0,0 +1,47 @@
@VBOX_PRODUCT@ for Oracle Solaris (TM) Operating System
--------------------------------------------------------
Upgrading:
----------
If you have an existing VirtualBox installation and you are upgrading to
a newer version of VirtualBox, please uninstall the previous version
before installing a newer one. Please refer to the "Uninstalling" section
at the end of this document for details.
Installing:
-----------
After extracting the contents of the tar.gz file perform the following steps:
1. Login as root using the "su" command.
2. Install the VirtualBox package:
pkgadd -d VirtualBox-@VBOX_VERSION_STRING@-SunOS-@KBUILD_TARGET_ARCH@-r@VBOX_SVN_REV@.pkg
To perform an unattended (non-interactive) installation of this
package, add "-n -a autoresponse SUNWvbox" (without quotes)
to the end of the above pkgadd command.
3. For each package, the installer will ask you to "Select package(s) you
wish to process". In response, type "1".
4. Type "y" when asked about continuing the installation.
At this point, all the required files should be installed on your system.
You can launch VirtualBox by running 'VirtualBox' from the terminal.
Uninstalling:
-------------
To remove VirtualBox from your system, perform the following steps:
1. Login as root using the "su" command.
2. To remove VirtualBox, run the command:
pkgrm SUNWvbox

55
doc/ReadMe-Solaris11.txt Normal file
View file

@ -0,0 +1,55 @@
@VBOX_PRODUCT@ for Oracle Solaris 11 (TM) Operating System
----------------------------------------------------------------
Installing:
-----------
After extracting the contents of the tar.xz file install the VirtualBox
package with the following command:
$ sudo pkg install -g VirtualBox-@VBOX_VERSION_STRING@-SunOS-@KBUILD_TARGET_ARCH@-r@VBOX_SVN_REV@.p5p virtualbox
Of course you can add options for performing the install in a different boot
environment or in a separate Solaris install.
Normally you need to reboot the system to load the drivers which have been
added by the VirtualBox package.
If you want to have VirtualBox immediately usable on your system you can run
the script /opt/VirtualBox/ipsinstall.sh which sets up everything immediately.
At this point, all the required files should be installed on your system.
You can launch VirtualBox by running 'VirtualBox' from the terminal.
Upgrading:
----------
If you want to upgrade from an older to a newer version of the VirtualBox IPS
package you can use the following command after extracting the contents of the
tar.xz file:
$ sudo pkg update -g VirtualBox-@VBOX_VERSION_STRING@-SunOS-@KBUILD_TARGET_ARCH@-r@VBOX_SVN_REV@.p5p virtualbox
If you want to upgrade from the SysV package of VirtualBox to the IPS one,
please uninstall the previous package before installing the IPS one. Please
refer to the "Uninstalling" and "Installing" sections of this document for
details.
It is your responsibility to ensure that no VirtualBox VMs or other related
activities are running. One possible way is using the command pgrep VBoxSVC. If
this shows no output then it is safe to upgrade VirtualBox.
Uninstalling:
-------------
To remove VirtualBox from your system, run the following command:
$ sudo pkg uninstall virtualbox
It is your responsibility to ensure that no VirtualBox VMs or other related
activities are running. One possible way is using the command pgrep VBoxSVC. If
this shows no output then it is safe to uninstall VirtualBox.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,216 @@
/* $Id: VBox-MakefileGuidelines.cpp $ */
/** @file
* VBox - Makefile Guidelines.
*/
/*
* Copyright (C) 2009-2023 Oracle and/or its affiliates.
*
* This file is part of VirtualBox base platform packages, as
* available from https://www.virtualbox.org.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, in version 3 of the
* License.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <https://www.gnu.org/licenses>.
*
* SPDX-License-Identifier: GPL-3.0-only
*/
/** @page pg_vbox_makefile_guidelines VBox Makefile Guidelines
*
* These guidelines apply to all the Makefile.kmk files in the tree.
* No exceptions.
*
* All these makefiles are ultimately the responsiblity of bird. Since there
* are currently more than three hundred files and the number is growing, they
* have to be very kept uniform or it will become very difficult to maintain
* them and impossible do bulk refactoring. Thus these guidelines have no bits
* that are optional unlike the coding guidelines, and should be thought of as
* rules rather than guidelines.
*
* Note! The guidelines do not apply to the non-kBuild makefiles found in the
* source tree, like the ones shipped in the SDK and the ones for the
* linux kernel modules.
*
*
* @section sec_vbox_makefile_guidelines_kbuild kBuild
*
* kBuild is way older than VirtualBox, at least as a concept, but the
* VirtualBox project was a push to get something done about it again. It's
* maintained by bird in his spare time because: "We don't make buildsystems, we
* make virtual machines". So, kBuild makes progress when there is spare time
* or when there is an urgent need for something.
*
* The kBuild docs are in the process of being written. The current items and
* their status per 2018-10-29:
* - kmk Quick Reference [completed]:
* http://svn.netlabs.org/kbuild/wiki/kmk%20Quick%20Reference
* - kBuild Quick Reference [just started]:
* http://svn.netlabs.org/kbuild/wiki/kBuild%20Quick%20Reference
*
* Local copies of the docs can be found in kBuild/docs, just keep in mind that
* they might be slightly behind the online version.
*
*
* @section sec_vbox_makefile_guidelines_example Example Makefiles
*
* Let me point to some good sample makefiles:
* - src/VBox/Additions/common/VBoxService/Makefile.kmk
* - src/VBox/Debugger/Makefile.kmk
* - src/VBox/Disassembler/Makefile.kmk
*
* And some bad ones:
* - src/lib/xpcom18a4/Makefile.kmk
* - src/recompiler/Makefile.kmk
* - src/VBox/Devices/Makefile.kmk
* - src/VBox/Main/Makefile.kmk
* - src/VBox/Runtime/Makefile.kmk
*
*
* @section sec_vbox_makefile_guidelines Guidelines
*
* First one really important fact:
*
* Everything is global because all makefiles
* are virtually one single makefile.
*
* The rules:
*
* - Using bits defined by a sub-makefile is fine, using anything defined
* by a parent, sibling, uncle, cousine, or remoter relatives is not
* Okay. It may break sub-tree building which is not acceptable.
*
* - Template names starts with VBox and are camel cased, no
* underscores or other separators. (Note this used to be all upper
* case, fixing this incomplete.)
*
* - Makefile variables shall be prefixed with VBOX or VB to avoid clashes
* with environment and kBuild variables.
*
* - Makefile variables are all upper cased and uses underscores to
* separate the words.
*
* - All variables are global. Make sure they are globally unique, but try
* not make them incredible long.
*
* - Makefile variables goes after the inclusion of the header and
* usually after including sub-makefiles.
*
* - Variables that are used by more than one makefile usually ends up
* in the monster file, Config.kmk. However, see if there are any
* sub-tree specific Config.kmk files that could do the job first.
*
* - Targets are lower or camel cased and as a rule the same as the
* resulting binary.
*
* - Install targets frequently have a -inst in their name, and a name that
* gives some idea what they install
*
* - Always use templates (mytarget_TEMPLATE = VBoxSomething).
*
* - Comment each target with a 3+ line block as seen in
* src/VBox/Debugger/Makefile.kmk.
*
* - No space between the comment block and the target definition.
*
* - Try fit all the custom recipes after the target they apply to.
*
* - Custom recipes that apply to more than one target should be placed at
* the bottom of the makefile, before the footer inclusion when possible.
*
* - Do NOT use custom recipes to install stuff, use install targets.
* Generate files to inst-target_0_OUTDIR. (Yes, there are a lot places
* where we don't do this yet.)
*
* - Always break SOURCES, LIBS, long target list and other lists the
* manner Debugger_SOURCES is broken into multiple lines in
* src/VBox/Debugger/Makefile.kmk. I.e. exactly one tab, the file name /
* list item, another space, the slash and then the newline.
*
* - Line continuation slashes shall never ever be aligned vertically (that
* always goes crooked sooner or later), but have exactly one space
* before them.
*
* - The last element of an broken list shall not have a slash-newline,
* otherwise we risk getting the next variable into the list.
*
* - When if'ed blocks come into play, we will only indent the conditional
* makefile directives (if, ifeq, ifneq, if1of, ifn1of, ifdef, ifndef,
* else, endif, ++), one space for each level. (Note! We used to indent
* non-directives, which made emacs upset as we'd have both tabs and
* spaces on as indentation on the same line. There are a lot of cases
* of this still around.)
*
* - \$(NO_SUCH_VARIABLE) should be when you need to put nothing somewhere,
* for instance to prevent inherting an attribute.
*
* - Always put the defines in the DEFS properties, never use the FLAGS
* properties for this. Doing so may screw up depenencies and object
* caches.
*
* - Mark each section and target of the file with a 3+ lines comment
* block.
*
* - Document variables that are not immediately obvious using double hash
* comments, doxygen style.
*
* - Each an every Makefile.kmk shall have a file header with Id, file
* description and copyright/license exactly like in the examples. (The
* SCM tool will complain if you don't.)
*
* - Multiple blank lines in a makefile is very seldom there without a
* reason and shall be preserved.
*
* - Inserting blank lines between target properties is all right if the
* target definition is long and/or crooked.
*
* - if1of and ifn1of shall always have a space after the comma, while ifeq
* and ifneq shall not. That way they are easier to tell apart.
*
* - Do a svn diff before committing makefile changes.
*
*
* @section sec_vbox_makefile_guidelines_reminders Helpful reminders
*
* - Do not be afraid to ask for help on IRC or in the defect you're
* working on. There are usually somebody around that know how to best do
* something.
*
* - Watch out for "Heads Up!" bugtracker messages concerning the build
* system.
*
* - To remove bits from a template you're using you have to create a new
* template that extends the existing one and creatively use
* \$(filter-out) or \$(patsubst).
*
* - You can build sub-trees.
*
* - You don't have to cd into sub-trees: kmk -C src/recompiler
*
* - You can build individual targets: kmk VBoxRT
*
* - Even install targets: kmk nobin
*
* - You can compile individual source files: kmk ConsoleImpl.o
*
* - You can tell kmk to continue on failure: kmk -k
*
* - You can tell kmk to run at low priority: kmk --nice
*
* - The --pretty-command-printing option is useful for seeing exactly
* what's passed to the tools.
*
* - You can invoke recipes in the root makefile more efficiently via the
* Maintenance.kmk file: kmk -f Maintenance.kmk incs
*
*/

219
doc/VBox-doc.c Normal file
View file

@ -0,0 +1,219 @@
/* $Id: VBox-doc.c $ */
/** @file
* VirtualBox Top Level Documentation File.
*/
/*
* Copyright (C) 2006-2023 Oracle and/or its affiliates.
*
* This file is part of VirtualBox base platform packages, as
* available from https://www.virtualbox.org.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, in version 3 of the
* License.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <https://www.gnu.org/licenses>.
*
* SPDX-License-Identifier: GPL-3.0-only
*/
/** @mainpage VirtualBox
*
* (add introduction here)
*
* @section pg_main_comp Components
*
* - VM / @ref pg_vmm "VMM" / GVM / @ref pg_gvmm "GVMM" - Virtual Machine
* Monitor.
* - @ref pg_cfgm
* - @ref pg_cpum
* - @ref pg_dbgf
* - @ref pg_dbgf_addr_space
* - @ref pg_dbgf_vmcore
* - @ref pg_dbgf_module
* - @ref pg_dbgc
* - VBoxDbg - Debugger GUI (Qt).
* - @ref grp_dis
* - @ref pg_em
* - @ref pg_gim
* - @ref pg_hm
* - @ref pg_iem
* - @ref pg_nem
* - @ref pg_gmm
* - @ref pg_mm
* - @ref pg_pgm
* - @ref pg_pgm_phys
* - @ref pg_pgm_pool
* - @ref pg_selm
* - @ref pg_iom
* - @ref pg_pdm
* - Devices / USB Devices, Drivers and their public interfaces.
* - Async I/O Completion API.
* - Async Task API.
* - Critical Section API.
* - Queue API.
* - Thread API.
* - @ref pg_pdm_block_cache
* - @ref pg_ssm
* - @ref pg_stam
* - @ref pg_tm
* - @ref pg_trpm
* - VMM docs:
* - @ref pg_vmm_guideline
* - @ref pg_raw
* - Pluggable Components (via PDM).
* - DevPCArch - PC Architecture Device (chipset, legacy ++).
* - DevPCBios - Basic Input Output System.
* - DevDMAC - DMA Controller.
* - DevPIC - Programmable Interrupt Controller.
* - DevPIT - Programmable Interval Timer (i8254).
* - DevRTC - Real Time Clock.
* - DevVGA - Video Graphic Array.
* - DevPCI - Peripheral Component Interface (Bus).
* - VBoxDev - Special PCI Device which serves as an interface between
* the VMM and the guest OS for the additions.
* - @ref pg_pdm_audio "Audio":
* - DevHda - Intel High Definition Audio Device Emulation.
* - DevIchAc97 - ICH AC'97 Device Emulation.
* - DevSB16 - SoundBlaster 16 Device Emulation.
* - DrvAudio - Intermediate driver.
* - DrvHostAudioAlsa - ALSA Host Audio Driver (Linux).
* - DrvHostAudioCoreAudio - Core Audio Host Audio Driver (macOS).
* - DrvHostAudioDebug - Debug Backend Driver.
* - DrvHostAudioDSound - DirectSound Host Audio Driver (Windows).
* - DrvHostAudioNull - NULL Backend Driver.
* - DrvHostAudioOss - Open Sound System Host Audio Driver (Linux,
* Solaris, ++).
* - DrvHostAudioPulseAudio - PulseAudio Host Audio Driver (Linux).
* - DrvHostAudioValidationKit - Validation Kit Test Driver.
* - DrvHostAudioWasApi - Windows Audio Session API Host Audio Driver.
* - Networking:
* - DevPCNet - AMD PCNet Device Emulation.
* - DevE1000 - Intel E1000 Device Emulation.
* - DevEEPROM - Intel E1000 EPROM Device Emulation.
* - SrvINetNetR0 - Internal Networking Ring-0 Service.
* - DevINIP - IP Stack Service for the internal networking.
* - DrvIntNet - Internal Networking Driver.
* - DrvNetSniffer - Wireshark Compatible Sniffer Driver (pass thru).
* - DrvNAT - Network Address Translation Driver.
* - DrvTAP - Host Interface Networking Driver.
* - Storage:
* - DevATA - ATA ((E)IDE) Device Emulation.
* - @ref pg_dev_ahci
* - DevFDC - Floppy Controller Device Emulation.
* - DrvBlock - Intermediate block driver.
* - DrvHostBase - Common code for the host drivers.
* - DrvHostDVD - Host DVD drive driver.
* - DrvHostFloppy - Host floppy drive driver.
* - DrvHostRawDisk - Host raw disk drive driver.
* - DrvMediaISO - ISO media driver.
* - DrvRawImage - Raw image driver (floppy images etc).
* - DrvVD - Intermediate Virtual Drive (Media) driver.
* - DrvVDI - VirtualBox Drive Image Container Driver.
* - DrvVmdk - VMDK Drive Image Container Driver.
* - USB:
* - @ref pg_dev_ohci
* - @ref pg_dev_ehci
* - @ref pg_dev_vusb
* - @ref pg_dev_vusb_old
* - Host Drivers.
* - SUPDRV - The Support driver (aka VBoxDrv).
* - @ref pg_sup
* - @ref pg_netflt
* - @ref pg_netadp
* - VBoxUSB - The USB support driver.
* - @ref pg_netflt
* - @ref pg_rawpci
* - Host Services.
* - @ref pg_hostclip
* - Shared Folders.
* - @ref pg_svc_guest_properties
* - @ref pg_svc_guest_control
* - Guest Additions.
* - VBoxGuest.
* - @ref pg_guest_lib
* - @ref pg_vgsvc
* - @ref pg_vgsvc_timesync
* - @ref pg_vgsvc_vminfo
* - @ref pg_vgsvc_vmstats
* - @ref pg_vgsvc_gstctrl
* - @ref pg_vgsvc_pagesharing
* - @ref pg_vgsvc_memballoon
* - @ref pg_vgsvc_cpuhotplug
* - @ref pg_vgsvc_automount
* - @ref pg_vgsvc_clipboard
* - VBoxControl.
* - Linux, Solaris and FreeBSD specific guest services and drivers.
* - @ref pg_vboxdrmcliet (Linux only).
* - VBoxClient.
* - VBoxVideo.
* - Windows Guests.
* - VBoxTray.
* - crOpenGL.
* - pam.
* - ...
* - Network Services:
* - @ref pg_net_dhcp
* - NAT
* - @ref pg_main
* - @ref pg_main_events
* - @ref pg_vrdb_usb
* - Frontends:
* - VirtualBox - The default Qt-based GUI.
* - VBoxHeadless - The headless frontend.
* - VBoxManage - The CLI.
* - VBoxShell - An interactive shell written in python.
* - VBoxSDL - A very simple GUI.
* - VBoxBFE - A bare metal edition which does not use COM/XPCOM (barely
* maintained atm).
* - IPRT - Runtime Library for hiding host OS differences.
* - Validation Kit:
* - @ref pg_validationkit_guideline
* - @ref pg_bs3kit
* - @ref pg_vbox_guideline
*
* @todo Make links to the components.
*
*
*
* @section Execution Contexts
*
* VirtualBox defines a number of different execution context, this can be
* confusing at first. So, to start with take a look at this diagram:
*
* @image html VMMContexts.png
*
* Context definitions:
* - Host context (HC) - This is the context where the host OS runs and
* runs VirtualBox within it. The absense of IN_RC and IN_GUEST
* indicates that we're in HC. IN_RING0 indicates ring-0 (kernel) and
* IN_RING3 indicates ring-3.
* - Raw-mode Context (RC) - This is the special VMM context where we
* execute the guest code directly on the CPU. Kernel code is patched
* and execute in ring-1 instead of ring-0 (ring compression). Ring-3
* code execute unmodified. Only VMMs use ring-1, so we don't need to
* worry about that (it's guarded against in the scheduler (EM)). We can
* in theory run ring-2 there, but since practially only only OS/2 uses
* ring-2, it is of little importance. The macro IN_RC indicates that
* we're compiling something for RC.
* Note! This used to be called GC (see below) earlier, so a bunch of RC
* things are using GC markers.
* - Guest Context (GC) - This is where the guest code is executed. When
* compiling, IN_GUEST indicates that it's for GC. IN_RING0 and
* IN_RING3 are also set when applicable, these are accompanied by
* IN_GUEST_R0 and IN_GUEST_R3 respecitively.
* - Intermediate context - This is a special memory context used within
* the world switchers (HC -> RC and back), it features some identity
* mapped code pages so we can switch to real mode if necessary.
*
*/

BIN
doc/VMM/PDMStorageScsi.odg Normal file

Binary file not shown.

BIN
doc/VMM/PDMStorageScsi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

BIN
doc/VMM/VMMContexts.odg Normal file

Binary file not shown.

BIN
doc/VMM/VMMContexts.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 KiB

62
doc/kBuild-tricks.txt Normal file
View file

@ -0,0 +1,62 @@

kBuild / VBox Build Tricks
==========================
Introduction
------------
This document is written in reStructuredText (rst) which just happens to
be used by Python, the primary language for this revamp. For more information
on reStructuredText: http://docutils.sourceforge.net/rst.html
Changing the output directory
-----------------------------
When switch between different VBox build settings it can be nice to have
different output directories to avoid having to rebuild the whole source tree
everything. One typical example is hardening, another is guest additions using
crossbuild gcc w/ SDK. The latter is is simpler so that's the first example:
.. code:: makefile
ifdef VBOX_WITH_COMPATIBLE_LINUX_GUEST_PACKAGE
PATH_OUT_BASE = $(PATH_ROOT)/add-out
endif
The following example is the typical developer setup, i.e. disable hardening by
default but respect command line overrides (kmk VBOX_WITH_HARDENING=1):
.. code:: make
VBOX_WITH_HARDENING :=
ifeq ($(VBOX_WITH_HARDENING),)
VBOX_WITHOUT_HARDENING=1
else
PATH_OUT_BASE = $(PATH_ROOT)/hard-out
endif
Share tools download directory between trunk and branches
---------------------------------------------------------
To avoid filling up your disk with unnecessary tool zip and tar.gz files, set
the FETCHDIR variable in LocalConfig.kmk to point to a common directory for all
VBox checkouts.
.. code:: make
FETCHDIR = $(HOME)/Downloads/FetchDir
-----
.. [1] no such footnote
-----
:Status: $Id: kBuild-tricks.txt $
:Copyright: Copyright (C) 2006-2022 Oracle Corporation.

33
doc/manual/.scm-settings Normal file
View file

@ -0,0 +1,33 @@
# $Id: .scm-settings $
## @file
# Source code massager settings for the manual.
#
#
# Copyright (C) 2010-2023 Oracle and/or its affiliates.
#
# This file is part of VirtualBox base platform packages, as
# available from https://www.virtualbox.org.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, in version 3 of the
# License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses>.
#
# SPDX-License-Identifier: GPL-3.0-only
#
/string.xsl: --external-copyright --no-convert-tabs
/titlepage-htmlhelp.xml: --external-copyright --no-convert-tabs
--filter-out-dirs /texfiles/.

423
doc/manual/Config.kmk Normal file
View file

@ -0,0 +1,423 @@
# $Id: Config.kmk $
## @file
# kBuild Configuration file for the manual.
#
#
# Copyright (C) 2010-2023 Oracle and/or its affiliates.
#
# This file is part of VirtualBox base platform packages, as
# available from https://www.virtualbox.org.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, in version 3 of the
# License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses>.
#
# SPDX-License-Identifier: GPL-3.0-only
#
ifndef VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED
VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED = 1
# Include the top-level configure file.
ifndef VBOX_ROOT_CONFIG_KMK_INCLUDED
include $(PATH_ROOT)/Config.kmk
endif
#
# Globals.
#
# Source location.
VBOX_PATH_MANUAL_SRC := $(PATH_ROOT)/doc/manual
# Output location.
VBOX_PATH_MANUAL_OUTBASE := $(PATH_OBJ)/manual
## List of refentry files (manpages).
VBOX_MANUAL_XML_REFENTRY_FILES := \
man_VBoxManage-common.xml \
man_VBoxManage-list.xml \
man_VBoxManage-showvminfo.xml \
man_VBoxManage-registervm.xml \
man_VBoxManage-unregistervm.xml \
man_VBoxManage-createvm.xml \
man_VBoxManage-modifyvm.xml \
man_VBoxManage-snapshot.xml \
man_VBoxManage-clonevm.xml \
man_VBoxManage-movevm.xml \
man_VBoxManage-encryptvm.xml \
man_VBoxManage-startvm.xml \
man_VBoxManage-controlvm.xml \
man_VBoxManage-import.xml \
man_VBoxManage-export.xml \
man_VBoxManage-mediumio.xml \
man_VBoxManage-sharedfolder.xml \
man_VBoxManage-dhcpserver.xml \
man_VBoxManage-debugvm.xml \
man_VBoxManage-extpack.xml \
man_VBoxManage-unattended.xml \
man_VBoxManage-cloud.xml \
man_VBoxManage-cloudprofile.xml \
man_VBoxManage-signova.xml \
man_VBoxManage-modifynvram.xml \
man_VBoxManage-hostonlynet.xml \
man_VBoxManage-updatecheck.xml \
man_VBoxManage-discardstate.xml \
man_VBoxManage-adoptstate.xml \
man_VBoxManage-closemedium.xml \
man_VBoxManage-storageattach.xml \
man_VBoxManage-storagectl.xml \
man_VBoxManage-bandwidthctl.xml \
man_VBoxManage-showmediuminfo.xml \
man_VBoxManage-createmedium.xml \
man_VBoxManage-modifymedium.xml \
man_VBoxManage-clonemedium.xml \
man_VBoxManage-mediumproperty.xml \
man_VBoxManage-encryptmedium.xml \
man_VBoxManage-checkmediumpwd.xml \
man_VBoxManage-convertfromraw.xml \
man_VBoxManage-setextradata.xml \
man_VBoxManage-getextradata.xml \
man_VBoxManage-setproperty.xml \
man_VBoxManage-usbfilter.xml \
man_VBoxManage-guestproperty.xml \
man_VBoxManage-guestcontrol.xml \
man_VBoxManage-metrics.xml \
man_VBoxManage-natnetwork.xml \
man_VBoxManage-hostonlyif.xml \
man_VBoxManage-usbdevsource.xml
## List of user manual XML files.
VBOX_MANUAL_XML_FILES = \
UserManual.xml \
user_Preface.xml \
user_Introduction.xml \
user_Installation.xml \
user_BasicConcepts.xml \
user_GuestAdditions.xml \
user_Storage.xml \
user_Networking.xml \
user_Frontends.xml \
user_VBoxManage.xml \
user_AdvancedTopics.xml \
user_Technical.xml \
user_VirtualBoxAPI.xml \
user_Troubleshooting.xml \
user_Security.xml \
user_KnownIssues.xml \
user_ChangeLog.xml \
user_ThirdParty.xml \
user_PrivacyPolicy.xml \
user_Glossary.xml \
oracle-accessibility-ohc-en.xml \
oracle-diversity.xml \
oracle-support-en.xml
## List of user manual XML files common for all languages.
VBOX_MANUAL_XML_FILES_COMMON = \
$(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml
# Tool locations.
ifndef VBOX_OSE
# use docbook from our tools directory
VBOX_PATH_DOCBOOK ?= $(KBUILD_DEVTOOLS)/common/DocBook/v1.69.1
VBOX_PATH_DOCBOOK_DTD ?= $(KBUILD_DEVTOOLS)/common/docbook-xml/v4.5
else
# use docbook of the build host
VBOX_PATH_DOCBOOK ?= /usr/share/xml/docbook/stylesheet/docbook-xsl
VBOX_PATH_DOCBOOK_DTD ?= /usr/share/xml/docbook/schema/dtd/4.5
endif
VBOX_XML_CATALOG ?= $(VBOX_PATH_MANUAL_OUTBASE)/vbox-doc.cat
VBOX_XML_CATALOG_DOCBOOK ?= $(VBOX_PATH_MANUAL_OUTBASE)/docbook.cat
VBOX_XML_CATALOG_MANUAL ?= $(VBOX_PATH_MANUAL_OUTBASE)/manual.cat
VBOX_XML_ENTITIES ?= $(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent
# xsltproc with the catalog trick if applicable (set XML_DEBUG_CATALOG to
# non-zero value to debug file/uri resolution through the catalogs, using
# one of them is enough, they show the same information).
ifdef VBOX_XML_CATALOG
VBOX_XSLTPROC_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(if $(2),$(2),$(VBOX_XML_CATALOG))" -E "XML_DEBUG_CATALOG=" $1 -- \
$(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"
VBOX_XMLLINT_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -E "XML_DEBUG_CATALOG=" -- \
$(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"
else
VBOX_XSLTPROC_WITH_CAT = $(if $(1), $(REDIRECT) $1 --,) $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) \
--path "$(VBOX_PATH_MANUAL_OUTBASE)"
VBOX_XMLLINT_WITH_CAT = $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)"
endif
# File name of the generated stylesheet for transforming xref elements into
# name user manual sections.
VBOX_XML_XREF_TO_TEXT = xref-to-text.xsl
##
# Emits rules for preprocessing refentry sources (applying remarks element),
# and for producing the actual man pages.
#
# $(evalcall2 def_vbox_refentry_preprocess_for_manpage)
# @param 1 The output directory.
# @param 2 The XML file name (no path).
# @param 3 The XML file with full path.
# @param 4 Non-empty if xrefs to replace.
# @param 5 Language code (optional if $4 is empty).
define def_vbox_refentry_preprocess_for_manpage
$(1)/$(2): \
$(3) \
$$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \
$(if $(4), $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/$$(VBOX_XML_XREF_TO_TEXT),) \
$$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \
$$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)
$$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@)
$$(QUIET)$$(RM) -f "$$@"
$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ \
"$$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl" $$<
ifneq ($(4),)
$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@.tmp \
$$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/$$(VBOX_XML_XREF_TO_TEXT) $$@
$$(QUIET)$$(MV) -f -- "$$@.tmp" "$$@"
endif
if defined(VBOX_HAVE_XMLLINT) && "$(USER)" == "bird" # Effing stuff happends on build servers, probably kmk related...
$$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@
endif
endef
##
# Generate a single header file containing everything (no C file).
#
# @param 1 Destination file.
# @param 2 Full source file path.
# @param 3 Help infix.
define def_vbox_single_refentry_to_h
$(1).ts +| $(1): \
$$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) \
$$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) \
$(2) \
$$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $(MAKEFILE) | $$$$(dir $$$$@)
$$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(filter %.xml,$$^),$$(patsubst %.ts,%,$$@))
$$(QUIET)$$(APPEND) -tn "$$@" \
'/* Autogenerated by $$(notdir $$(filter %.xsl,$$^)), do not edit! */' \
'' \
'#include <iprt/message.h>' \
'#include <iprt/assertcompile.h>' \
'' \
'typedef enum HELP_CMD_$(3)' \
'{' \
' HELP_CMD_INVALID = 0,'
$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") \
--stringparam 'g_sMode' 'cmd' $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) $(2)
$$(QUIET)$$(APPEND) -n "$$@" \
' HELP_CMD_END' \
'} HELP_CMD_VBOXMANAGE;' \
''
$$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") \
--stringparam 'g_sMode' 'subcmd' $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) $(2)
$$(QUIET)$$(APPEND) -n "$$@" \
''
$$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") $$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) $(2)
$$(QUIET)$$(APPEND) -n "$$@" \
'' \
'/* end of file */'
$$(QUIET)$$(CP) --changed -- "$$@" "$$(patsubst %.ts,%,$$@)"
endef
#
# Make sure we've got a rule to make the output directory.
#
BLDDIRS += $(VBOX_PATH_MANUAL_OUTBASE)
ifdef VBOX_XML_CATALOG
# Trickery for making sure that the file:/// URLs end up with exactly 3
# slashes, both on Unixy OSes (where the absolute path contributes one more,
# and some very picky xsltproc variants are floating around which do not work
# quite correctly with file:////, doing incorrect filename transformations)
# and on Windows (where the absolute path starts with a drive letter).
VBOX_FILE_URL_MAYBE_SLASH = $(if $(eq $(KBUILD_HOST),win),/,)
#
# To avoid network I/O for fetching DTDs, we generate catalogs mapping the public
# entity IDs to local files. (Obviously, only done when we have local files.)
#
# Create a catalog file for xsltproc that points to docbook catalog.
$(VBOX_XML_CATALOG): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
$(call MSG_L1,Creating catalog $@)
$(QUIET)$(APPEND) -tn "$@" \
'<?xml version="1.0"?>' \
'<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
'<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
' <delegatePublic publicIdStartString="-//OASIS/ENTITIES DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
' <delegatePublic publicIdStartString="-//OASIS/DTD DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
' <delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
' <delegateSystem systemIdStartString="http://docbook.org/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
' <delegateURI uriStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
' <delegateURI uriStartString="http://docbook.org/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \
'</catalog>'
# Create a docbook catalog file for xsltproc that points to the local docbook files.
$(VBOX_XML_CATALOG_DOCBOOK): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
$(call MSG_L1,Creating catalog $@)
$(QUIET)$(APPEND) -tn "$@" \
'<?xml version="1.0"?>' \
'<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
'<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
' <public publicId="-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbpoolx.mod"/>' \
' <public publicId="-//OASIS//DTD DocBook XML V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd"/>' \
' <public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbcentx.mod"/>' \
' <public publicId="-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbnotnx.mod"/>' \
' <public publicId="-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbgenent.mod"/>' \
' <public publicId="-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/dbhierx.mod"/>' \
' <public publicId="-//OASIS//DTD XML Exchange Table Model 19990315//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/soextblx.dtd"/>' \
' <public publicId="-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/calstblx.dtd"/>' \
' <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
' <rewriteSystem systemIdStartString="http://docbook.org/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
' <rewriteURI uriStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
' <rewriteURI uriStartString="http://docbook.org/xml/4.5" rewritePrefix="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsa.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsb.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsc.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsn.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amso.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsr.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Box and Line Drawing//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-box.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Russian Cyrillic//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-cyr1.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-cyr2.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-dia.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Greek Letters//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk1.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Monotoniko Greek//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk2.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Greek Symbols//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk3.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-grk4.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Added Latin 1//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-lat1.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Added Latin 2//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-lat2.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-num.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES Publishing//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-pub.ent"/>' \
' <public publicId="ISO 8879:1986//ENTITIES General Technical//EN" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-tech.ent"/>' \
'</catalog>'
# Create a docbook catalog file for xsltproc that points to the local manual files in non-default locations
$(VBOX_XML_CATALOG_MANUAL): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@)
$(call MSG_L1,Creating catalog $@)
$(QUIET)$(APPEND) -tn "$@" \
'<?xml version="1.0"?>' \
'<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
'<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-accessibility-ohc-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-accessibility-ohc-en.xml"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-legal-notices/oracle-diversity.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-diversity.xml"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-legal-notices/oracle-support-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-support-en.xml"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_ChangeLogImpl.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl"/>' \
$(foreach x,user_VBoxManage_CommandsOverview.xml user_isomakercmd-man.xml $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES) man_VBoxHeadless.xml man_vboximg-mount.xml)\
,' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/$(x)" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/en_US/$(x)"/>' \$(NLTAB)$(TAB)) \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef_apiref.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef_apiref.xml"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/all-entities.ent" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/html/docbook.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/html/docbook.xsl"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/html/chunk.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/html/chunk.xsl"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/htmlhelp/htmlhelp.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/htmlhelp/htmlhelp.xsl"/>' \
' <system systemId="$(VBOX_PATH_MANUAL_SRC)/manpages/docbook.xsl" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_DOCBOOK)/manpages/docbook.xsl"/>' \
'</catalog>'
endif # VBOX_XML_CATALOG
ifdef VBOX_XML_ENTITIES
$(VBOX_XML_ENTITIES): $(VBOX_PATH_MANUAL_SRC)/Config.kmk $(VBOX_VERSION_STAMP) | $$(dir $$@)
$(call MSG_L1,Creating entities $@)
$(QUIET)$(APPEND) -tn "$@" \
'<!-- Entities for product names -->' \
'<!ENTITY product-version "$(VBOX_VERSION_STRING)">' \
'<!ENTITY product-name "Oracle VM VirtualBox">' \
'<!ENTITY vbox-mgr "VirtualBox Manager">' \
'<!ENTITY oci "Oracle Cloud Infrastructure">' \
'' \
'<!-- VBox placeholder entities -->' \
'<!ENTITY VBOX_VERSION_MAJOR "$(VBOX_VERSION_MAJOR)" >' \
'<!ENTITY VBOX_VERSION_MINOR "$(VBOX_VERSION_MINOR)" >' \
'<!ENTITY VBOX_VERSION_BUILD "$(VBOX_VERSION_BUILD)" >' \
'<!ENTITY VBOX_VERSION_STRING "$(VBOX_VERSION_STRING)" >' \
'<!ENTITY VBOX_VENDOR "$(VBOX_VENDOR)" >' \
'<!ENTITY VBOX_C_YEAR "$(VBOX_C_YEAR)" >' \
'<!ENTITY VBOX_PRODUCT '\''<trademark class="registered">Oracle</trademark> VM <trademark class="registered">VirtualBox</trademark>'\'' >' \
'' \
'<!-- Entities for Oracle Help Center -->' \
'<!ENTITY ohc-base-url "https://docs.oracle.com/en">' \
'<!ENTITY ohc-doc-page "&ohc-base-url;/virtualization/virtualbox/index.html">'
endif # VBOX_XML_ENTITIES
## Emit rules to produce stylesheet for translating cross references (xref)
# to user manual chapters and sections in the man pages and --help output.
#
# Note! This requires processing UserManual.xml as a single document in order
# to get the correct chapter and section numbering, so we use a catalog
# file to replace the generated XML documents it includes with a dummy
# one. This reduces the dependencies and recipies we require to build
# VBoxManage and the RTIsoMaker (w/ derivatives).
# $(evalcall2 def_vbox_xref_to_text)
# @param 1 Language code.
define def_vbox_xref_to_text
$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \
+ $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat: \
$$(VBOX_PATH_MANUAL_SRC)/$(1)/docbook-refentry-link-replacement-xsl-gen.xsl \
$$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-link-replacement-xsl-gen.xsl \
$$(addprefix $$(VBOX_PATH_MANUAL_SRC)/en_US/,$$(VBOX_MANUAL_XML_FILES)) \
$$(VBOX_MANUAL_XML_FILES_COMMON) \
$$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $$(VBOX_XML_ENTITIES) \
| $$$$(dir $$$$@)
$$(call MSG_L1,Creating stylesheet $$@)
$$(QUIET)$$(APPEND) -nt "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat" \
'<?xml version="1.0"?>' \
'<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
'<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \
$$(foreach x, user_isomakercmd-man.xml \
$$(addprefix user_,$$(VBOX_MANUAL_XML_REFENTRY_FILES) man_VBoxHeadless.xml man_vboximg-mount.xml) \
$$(addprefix overview_,$$(VBOX_MANUAL_XML_REFENTRY_FILES)) \
,' <system systemId="$$(VBOX_PATH_MANUAL_SRC)/en_US/$$(x)" uri="file://$$(VBOX_FILE_URL_MAYBE_SLASH)$$(VBOX_PATH_MANUAL_SRC)/dummy-sect1.xml"/>' \$$(NLTAB)$$(TAB)) \
' <nextCatalog catalog="file://$$(VBOX_FILE_URL_MAYBE_SLASH)$$(VBOX_XML_CATALOG)"/>' \
'</catalog>'
$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT,,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat) \
--stringparam 'g_sMode' 'first' --output "$$@" "$$<" $$(filter %UserManual.xml,$$^)
# Using en-US version as section and chapter names until user manual is translated as well
$$(foreach x, $$(VBOX_MANUAL_XML_REFENTRY_FILES)\
,$$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -ato "$$@") --stringparam 'g_sMode' 'append' \
"$$<" "$$(VBOX_PATH_MANUAL_SRC)/en_US/$$(x)")
$$(QUIET)$$(APPEND) -n "$$@" '' '</xsl:stylesheet>'
BLDDIRS += $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/
endef
# generate rules for $(VBOX_XML_XREF_TO_TEXT)
$(evalcall2 def_vbox_xref_to_text,en_US)
#
# Generate rules for editing the refentry to C/H style sheets.
#
VBOX_DOCBOOK_REFENTRY_TO_C_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-C-help.xsl
VBOX_DOCBOOK_REFENTRY_TO_H_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-H-help.xsl
#
# Manual dependency.
#
$(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-C-help.xsl: $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl
endif # !defined(VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED)

1004
doc/manual/Makefile.kmk Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
UserManul.qhcp:
UserManual qt help configuration file. XML to configure qt help project.
-->
<!--
Copyright (C) 2018-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<QHelpCollectionProject version="1.0">
<assistant>
<title>Virtual Box</title>
<!-- <applicationIcon>images/handbook.png</applicationIcon> -->
<cacheDirectory>QtProject/vbox</cacheDirectory>
<startPage>qthelp://org.virtualbox/manual/UserManual.xhtml</startPage>
<aboutMenuText>
<text>VirtualBox</text>
</aboutMenuText>
<!-- <aboutDialog> -->
<!-- <file>about.txt</file> -->
<!-- <icon>images/icon.png</icon> -->
<!-- </aboutDialog> -->
<enableDocumentationManager>false</enableDocumentationManager>
<enableAddressBar>true</enableAddressBar>
<enableFilterFunctionality>false</enableFilterFunctionality>
</assistant>
<docFiles>
<generate>
<file>
<input>UserManual.qhp</input>
<output>UserManual.qch</output>
</file>
</generate>
<register>
<file>UserManual.qch</file>
</register>
</docFiles>
</QHelpCollectionProject>

View file

@ -0,0 +1,169 @@
<?xml version="1.0"?>
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- General formatting settings. -->
<xsl:variable name="section.autolabel">1</xsl:variable>
<xsl:variable name="section.label.includes.component.label">1</xsl:variable>
<xsl:attribute-set name="monospace.properties">
<xsl:attribute name="font-size">90%</xsl:attribute>
</xsl:attribute-set>
<xsl:param name="draft.mode" select="'no'"/>
<!-- Shift down section sizes one magstep. -->
<xsl:attribute-set name="section.title.level1.properties">
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.728"></xsl:value-of>
<xsl:text>pt</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="section.title.level2.properties">
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.44"></xsl:value-of>
<xsl:text>pt</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="section.title.level3.properties">
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.2"></xsl:value-of>
<xsl:text>pt</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="section.title.level4.properties">
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master"></xsl:value-of>
<xsl:text>pt</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="section.title.level5.properties">
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master"></xsl:value-of>
<xsl:text>pt</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="section.title.level6.properties">
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master"></xsl:value-of>
<xsl:text>pt</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<!-- Shift down chapter font size one magstep. -->
<xsl:attribute-set name="component.title.properties">
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 2.0736"></xsl:value-of>
<xsl:text>pt</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<!-- command synopsis -->
<xsl:variable name="arg.choice.opt.open.str">[</xsl:variable>
<xsl:variable name="arg.choice.opt.close.str">]</xsl:variable>
<xsl:variable name="arg.choice.req.open.str">&lt;</xsl:variable>
<xsl:variable name="arg.choice.req.close.str">&gt;</xsl:variable>
<xsl:variable name="arg.choice.plain.open.str"><xsl:text> </xsl:text></xsl:variable>
<xsl:variable name="arg.choice.plain.close.str"><xsl:text> </xsl:text></xsl:variable>
<xsl:variable name="arg.choice.def.open.str">[</xsl:variable>
<xsl:variable name="arg.choice.def.close.str">]</xsl:variable>
<xsl:variable name="arg.rep.repeat.str">...</xsl:variable>
<xsl:variable name="arg.rep.norepeat.str"></xsl:variable>
<xsl:variable name="arg.rep.def.str"></xsl:variable>
<xsl:variable name="arg.or.sep"> | </xsl:variable>
<xsl:variable name="cmdsynopsis.hanging.indent">4pi</xsl:variable>
<!--
Make sure that sections inside the Preface are not numbered.
-->
<xsl:template match="preface/sect1" mode="object.title.template">
<xsl:call-template name="gentext.template">
<xsl:with-param name="context" select="'title-unnumbered'"/>
<xsl:with-param name="name">
<xsl:call-template name="xpath.location"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!--
refentry related layout tweaks.
Note! While we could save us all this work by using refsect1..3 and
refsynopsisdiv docbook-refentry-to-manual-sect1.xsl, we'd like to have
a valid XML document and thus do do some extra markup using the role
and condition attributes. We catch some of it here. But the XSLT
for specific targets (html, latex, etc) have a few more tweaks
related to this.
The @role has only one special trick 'not-in-toc' that excludes sections
like 'Synopsis' and 'Description' from the TOCs.
The @condition records the original refentry element name, i.e. it will
have values like refentry, refsynopsisdiv, refsect1, refsect2 and refsect3.
-->
<!-- This removes the not-in-toc bits from the toc. -->
<xsl:template match="sect2[@role = 'not-in-toc']" mode="toc" />
<xsl:template match="sect3[@role = 'not-in-toc']" mode="toc" />
<xsl:template match="sect4[@role = 'not-in-toc']" mode="toc" />
<xsl:template match="sect5[@role = 'not-in-toc']" mode="toc" />
<xsl:template match="section[@role = 'not-in-toc']" mode="toc" />
<xsl:template match="simplesect[@role = 'not-in-toc']" mode="toc" />
<!-- This removes unnecessary <dd><dl> stuff caused by the above. -->
<xsl:template match="sect1[sect2/@role = 'not-in-toc']" mode="toc">
<xsl:param name="toc-context" select="."/>
<xsl:call-template name="subtoc">
<xsl:with-param name="toc-context" select="$toc-context"/>
<xsl:with-param name="nodes" select="sect2[@role != 'not-in-toc'] | bridgehead[$bridgehead.in.toc != 0]"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="sect2[sect3/@role = 'not-in-toc']" mode="toc">
<xsl:param name="toc-context" select="."/>
<xsl:call-template name="subtoc">
<xsl:with-param name="toc-context" select="$toc-context"/>
<xsl:with-param name="nodes" select="sect3[@role != 'not-in-toc'] | bridgehead[$bridgehead.in.toc != 0]"/>
</xsl:call-template>
</xsl:template>
<!-- This make the refsect* and refsynopsisdiv unnumbered like the default refentry rendering. -->
<xsl:template match="sect2[@condition = 'refsynopsisdiv']
| sect2[starts-with(@condition, 'refsect')]
| sect3[starts-with(@condition, 'refsect')]
| sect4[starts-with(@condition, 'refsect')]
| sect5[starts-with(@condition, 'refsect')]
| section[starts-with(@condition, 'refsect')]
| simplesect[starts-with(@condition, 'refsect')]"
mode="object.title.template"
>
<xsl:call-template name="gentext.template">
<xsl:with-param name="context" select="'title-unnumbered'"/>
<xsl:with-param name="name">
<xsl:call-template name="xpath.location"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,197 @@
<?xml version="1.0"?>
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Must strip spaces in 'arg' elements too, we'll get extra spaces when
using 'replaceable'. Adding option too, just in case. -->
<xsl:strip-space elements="arg option"/>
<!-- Our hand written css styling. -->
<xsl:template name="user.head.content">
<style type="text/css">
<xsl:comment>
body
{
font-family: Verdana, Sans-serif, Arial, 'Trebuchet MS', 'Times New Roman';
font-size: small;
}
h2.title
{
font-family: Verdana, Sans-serif, Arial, 'Trebuchet MS', 'Times New Roman';
margin: 5px 0 0;
padding: 1px 5px 1px;
border: 1px solid #6b89d4;
-moz-border-radius: 0.3em;
background: #e6edff;
}
.titlepage
{
text-align: center;
}
.refsynopsisdiv, .refsect1, .refsect2, .refsect3
{
text-align: left;
}
.warning
{
padding: 5px;
border: 1px solid #ff0011;
-moz-border-radius: 0.3em;
background: #ffbbbb;
}
.warning .title { margin: 0px 0px 5px 0px; }
.warning p { margin: 1px; }
.note
{
padding: 1px 5px 1px;
border: 1px solid #84c43b;
-moz-border-radius: 0.3em;
background: #d7e9a7;
}
.note .title { margin: 0px 0px 5px 0px; }
.note p { margin: 1px; }
.cmdsynopsis
{
font-family: monospace;
}
.refsynopsisdiv > .cmdsynopsis p, .refsect1 > .cmdsynopsis p,
.refsynopsisdiv .sect2 > .cmdsynopsis p, .refsect1 .sect2 > .cmdsynopsis p
{
margin-top: 0px;
margin-bottom: 0px;
}
.cmdsynopsis p
{
padding-left: 3.4em;
text-indent: -2.2em;
}
p.nextcommand
{
margin-top: 0px;
margin-bottom: 0px;
}
p.lastcommand
{
margin-top: 0px;
}
.refentry * h3
{
font-size: large;
}
.refentry * h4
{
font-size: larger;
}
.refentry * h5
{
font-size: larger;
}
</xsl:comment>
</style>
</xsl:template>
<!-- Ignore/skip the remark that the command overview inclusion file
uses as the root element. -->
<xsl:template match="remark[@role='VBoxManage-overview']">
<xsl:apply-templates select="node()"/>
</xsl:template>
<!-- This is for allow special CSS rules to apply to the refsect stuff. -->
<xsl:template match="sect2[ @role = 'not-in-toc']/title
| sect3[ @role = 'not-in-toc']/title
| sect4[ @role = 'not-in-toc']/title
| sect5[ @role = 'not-in-toc']/title
| section[ @role = 'not-in-toc']/title
| simplesect[@role = 'not-in-toc']/title
| sect1[ @condition = 'refentry']/title
| sect2[ @condition = 'refentry']/title
| sect1[ starts-with(@condition, 'refsect')]/title
| sect2[ starts-with(@condition, 'refsect')]/title
| sect3[ starts-with(@condition, 'refsect')]/title
| sect4[ starts-with(@condition, 'refsect')]/title
| sect5[ starts-with(@condition, 'refsect')]/title
| section[ starts-with(@condition, 'refsect')]/title
| simplesect[starts-with(@condition, 'refsect')]/title
" mode="titlepage.mode">
<xsl:element name="div">
<xsl:attribute name="class">
<xsl:value-of select="../@role"/>
<xsl:if test="../@role and ../@condition">
<xsl:text> </xsl:text>
</xsl:if>
<xsl:value-of select="../@condition"/>
</xsl:attribute>
<xsl:apply-imports/>
</xsl:element>
</xsl:template>
<xsl:template match="sect2[ @role = 'not-in-toc']
| sect3[ @role = 'not-in-toc']
| sect4[ @role = 'not-in-toc']
| sect5[ @role = 'not-in-toc']
| section[ @role = 'not-in-toc']
| simplesect[@role = 'not-in-toc']
| sect1[ @condition = 'refentry']
| sect2[ @condition = 'refentry']
| sect1[ starts-with(@condition, 'refsect')]
| sect2[ starts-with(@condition, 'refsect')]
| sect3[ starts-with(@condition, 'refsect')]
| sect4[ starts-with(@condition, 'refsect')]
| sect5[ starts-with(@condition, 'refsect')]
| section[ starts-with(@condition, 'refsect')]
| simplesect[starts-with(@condition, 'refsect')]" >
<xsl:element name="div">
<xsl:attribute name="class">
<xsl:value-of select="@role"/>
<xsl:if test="@role and @condition">
<xsl:text> </xsl:text>
</xsl:if>
<xsl:value-of select="@condition"/>
</xsl:attribute>
<xsl:apply-imports/>
</xsl:element>
</xsl:template>
<!-- To use CSS to correctly insert hanging indent when soft wrapping and
<sbr>'ing a synopsis, we must place each command in its own <p>. The default
is to must issue a <br /> before each <command>, except the first one.
Note! This is a bit ugly as we're going contrary to the grain of XSLT here
starting with an closing . -->
<xsl:template match="cmdsynopsis/command">
<xsl:text disable-output-escaping="yes"><![CDATA[</p><p class="nextcommand">]]></xsl:text>
<xsl:call-template name="inline.monoseq"/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="cmdsynopsis/command[last()]">
<xsl:text disable-output-escaping="yes"><![CDATA[</p><p class="lastcommand">]]></xsl:text>
<xsl:call-template name="inline.monoseq"/>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,103 @@
<?xml version="1.0"?>
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Single html file template -->
<xsl:import href="html/docbook.xsl"/>
<xsl:import href="common-formatcfg.xsl"/>
<!-- Adjust some params -->
<!--
<xsl:param name="draft.mode" select="'no'"/>
<xsl:param name="generate.toc">book nop</xsl:param>
<xsl:param name="generate.index" select="0"></xsl:param>
<xsl:param name="suppress.navigation" select="1"></xsl:param>
<xsl:param name="header.rule" select="0"></xsl:param>
<xsl:param name="abstract.notitle.enabled" select="0"></xsl:param>
<xsl:param name="footer.rule" select="0"></xsl:param>
<xsl:param name="css.decoration" select="1"></xsl:param>
<xsl:param name="html.cleanup" select="1"></xsl:param>
<xsl:param name="css.decoration" select="1"></xsl:param>
-->
<!-- Our hand written css styling -->
<xsl:template name="user.head.content">
<style type="text/css">
<xsl:comment>
<!--
body
{
height: 100%;
font-family: Verdana, Sans-serif, Arial, 'Trebuchet MS', 'Times New Roman';
font-size: small;
position: absolute;
margin: 0px 0 0 0;
}
h2
{
text-decoration: none;
font-size: 1.2em;
font-family: Verdana, Sans-serif, Arial, 'Trebuchet MS', 'Times New Roman';
margin: 5px 0 0;
padding: 1px 5px 1px;
border: 1px solid #6b89d4; /* #84C43B; */
-moz-border-radius: 0.3em;
background: #e6edff; /* #d7e9a7; */
}
#watermark
{
margin: 0;
position: fixed;
top: 40%;
color: #eeeeee;
width: 100%;
height: 100%;
text-align: center;
vertical-align: middle;
font-size: 9em;
font-weight: bold;
z-index:-1;
}
-->
</xsl:comment>
</style>
</xsl:template>
<!-- Remove the title page at all -->
<!--
<xsl:template name="book.titlepage">
-->
<!-- Doesn't work with Qt, grrr -->
<!--<xsl:text><div id="watermark">VirtualBox<br />Change Log</div></xsl:text>-->
<!--
</xsl:template>
-->
<!-- Disable any links into the manual -->
<xsl:template match="xref" name="xref">
<xsl:text>the manual for more information</xsl:text>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,64 @@
<?xml version="1.0"?>
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Chunked html file template -->
<xsl:import href="html/chunk.xsl"/>
<xsl:import href="common-formatcfg.xsl"/>
<xsl:import href="common-html-formatcfg.xsl"/>
<!-- Adjust some params -->
<xsl:param name="draft.mode" select="'no'"/>
<xsl:param name="suppress.navigation" select="1"></xsl:param>
<xsl:param name="header.rule" select="0"></xsl:param>
<xsl:param name="abstract.notitle.enabled" select="0"></xsl:param>
<xsl:param name="footer.rule" select="0"></xsl:param>
<xsl:param name="css.decoration" select="1"></xsl:param>
<xsl:param name="html.cleanup" select="1"></xsl:param>
<xsl:param name="css.decoration" select="1"></xsl:param>
<xsl:param name="generate.toc">
appendix toc,title
article/appendix nop
article toc,title
book toc,title,figure,table,example,equation
chapter toc,title
part toc,title
preface toc,title
qandadiv toc
qandaset toc
reference toc,title
sect1 nop
sect2 nop
sect3 nop
sect4 nop
sect5 nop
section nop
set toc,title
</xsl:param>
</xsl:stylesheet>

View file

@ -0,0 +1,43 @@
<?xml version="1.0"?>
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Single html file template -->
<xsl:import href="html/docbook.xsl"/>
<xsl:import href="common-formatcfg.xsl"/>
<xsl:import href="common-html-formatcfg.xsl"/>
<!-- Adjust some params -->
<xsl:param name="draft.mode" select="'no'"/>
<xsl:param name="suppress.navigation" select="1"></xsl:param>
<xsl:param name="header.rule" select="0"></xsl:param>
<xsl:param name="abstract.notitle.enabled" select="0"></xsl:param>
<xsl:param name="footer.rule" select="0"></xsl:param>
<xsl:param name="css.decoration" select="1"></xsl:param>
<xsl:param name="html.cleanup" select="1"></xsl:param>
<xsl:param name="css.decoration" select="1"></xsl:param>
</xsl:stylesheet>

View file

@ -0,0 +1,76 @@
<?xml version="1.0"?>
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="htmlhelp/htmlhelp.xsl"/>
<xsl:import href="common-formatcfg.xsl"/>
<xsl:import href="common-html-formatcfg.xsl"/>
<xsl:include href="titlepage-htmlhelp.xsl"/>
<!-- Override the style sheet stuff from common-html-formatcfg.xsl, we don't
the same as the html-chunks and html-one-page. Also, the microsoft
help viewer may have limited CSS support, depending on which browser
version it emulated, so keep it simple. -->
<xsl:template name="user.head.content">
<style type="text/css">
<xsl:comment>
.cmdsynopsis p
{
padding-left: 3.4em;
text-indent: -2.2em;
}
p.nextcommand
{
margin-top: 0px;
margin-bottom: 0px;
}
p.lastcommand
{
margin-top: 0px;
}
</xsl:comment>
</style>
</xsl:template>
<!-- for some reason, the default docbook stuff doesn't wrap simple <arg> elements
into HTML <code>, so with a default CSS a cmdsynopsis ends up with a mix of
monospace and proportional fonts. Elsewhere we hack that in the CSS, here
that turned out to be harded, so we just wrap things in <code>, risking
nested <code> elements, but who cares as long as it works... -->
<xsl:template match="group|arg">
<xsl:choose>
<xsl:when test="name(..) = 'arg' or name(..) = 'group'">
<xsl:apply-imports/>
</xsl:when>
<xsl:otherwise>
<code><xsl:apply-imports/></code>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,203 @@
<?xml version="1.0"?>
<!--
docbook-refentry-link-replacement-xsl-gen.xsl:
XSLT stylesheet for generate a stylesheet that replaces links
to the user manual in the manpages.
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output method="text" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="g_sMode" select="not-specified"/>
<!-- Translatable strings -->
<xsl:variable name="sChapter" select="'chapter'"/>
<xsl:variable name="sSection" select="'section'"/>
<xsl:variable name="sOfManual" select="'of the user manual'"/>
<xsl:variable name="sInManual" select="'in the user manual'"/>
<!-- Default operation is to supress output -->
<xsl:template match="node()|@*">
<xsl:apply-templates/>
</xsl:template>
<!-- Remove all remarks. -->
<xsl:template match="remark"/>
<!--
Output header and footer.
-->
<xsl:template match="/">
<xsl:if test="$g_sMode = 'first'">
<xsl:text>&lt;?xml version="1.0"?&gt;
&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" &gt;
&lt;xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" /&gt;
&lt;xsl:template match="node()|@*"&gt;
&lt;xsl:copy&gt;
&lt;xsl:apply-templates select="node()|@*"/&gt;
&lt;/xsl:copy&gt;
&lt;/xsl:template&gt;
</xsl:text>
</xsl:if>
<xsl:apply-templates/>
<xsl:if test="$g_sMode = 'last'">
<xsl:text>
&lt;/xsl:stylesheet&gt;
</xsl:text>
</xsl:if>
</xsl:template>
<!--
Produce the transformation templates:
-->
<xsl:template match="chapter[@id]/title">
<xsl:text>
&lt;xsl:template match="xref[@linkend='</xsl:text>
<xsl:value-of select="../@id"/><xsl:text>']"&gt;
&lt;xsl:text&gt;</xsl:text><xsl:value-of select="$sChapter"/><xsl:text> </xsl:text>
<xsl:value-of select="count(../preceding-sibling::chapter) + 1"/><xsl:text> &quot;</xsl:text>
<xsl:value-of select="normalize-space()"/>
<xsl:text>&quot; </xsl:text><xsl:value-of select="$sInManual"/><xsl:text>&lt;/xsl:text&gt;
&lt;/xsl:template&gt;
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="sect1[@id]/title">
<xsl:text>&lt;xsl:template match="xref[@linkend='</xsl:text>
<xsl:value-of select="../@id"/><xsl:text>']"&gt;
&lt;xsl:text&gt;</xsl:text><xsl:value-of select="$sSection"/><xsl:text> </xsl:text>
<xsl:value-of select="count(../../preceding-sibling::chapter) + 1"/><xsl:text>.</xsl:text>
<xsl:value-of select="count(../preceding-sibling::sect1) + 1"/>
<xsl:text> &quot;</xsl:text>
<xsl:value-of select="normalize-space()"/><xsl:text>&quot; </xsl:text>
<xsl:value-of select="$sOfManual"/><xsl:text>&lt;/xsl:text&gt;
&lt;/xsl:template&gt;
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="sect2[@id]/title">
<xsl:text>&lt;xsl:template match="xref[@linkend='</xsl:text>
<xsl:value-of select="../@id"/><xsl:text>']"&gt;
&lt;xsl:text&gt;</xsl:text><xsl:value-of select="$sSection"/><xsl:text> </xsl:text>
<xsl:value-of select="count(../../../preceding-sibling::chapter) + 1"/><xsl:text>.</xsl:text>
<xsl:value-of select="count(../../preceding-sibling::sect1) + 1"/><xsl:text>.</xsl:text>
<xsl:value-of select="count(../preceding-sibling::sect2) + 1"/>
<xsl:text> &quot;</xsl:text>
<xsl:value-of select="normalize-space()"/><xsl:text>&quot; </xsl:text>
<xsl:value-of select="$sOfManual"/><xsl:text>&lt;/xsl:text&gt;
&lt;/xsl:template&gt;
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="sect3[@id]/title">
<xsl:text>&lt;xsl:template match="xref[@linkend='</xsl:text>
<xsl:value-of select="../@id"/><xsl:text>']"&gt;
&lt;xsl:text&gt;</xsl:text><xsl:value-of select="$sSection"/><xsl:text> </xsl:text>
<xsl:value-of select="count(../../../../preceding-sibling::chapter) + 1"/><xsl:text>.</xsl:text>
<xsl:value-of select="count(../../../preceding-sibling::sect1) + 1"/><xsl:text>.</xsl:text>
<xsl:value-of select="count(../../preceding-sibling::sect2) + 1"/><xsl:text>.</xsl:text>
<xsl:value-of select="count(../preceding-sibling::sect3) + 1"/>
<xsl:text> &quot;</xsl:text>
<xsl:value-of select="normalize-space()"/><xsl:text>&quot; </xsl:text>
<xsl:value-of select="$sOfManual"/><xsl:text>&lt;/xsl:text&gt;
&lt;/xsl:template&gt;
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="preface[@id]/title">
<xsl:text>&lt;xsl:template match="xref[@linkend='</xsl:text>
<xsl:value-of select="../@id"/><xsl:text>']"&gt;
&lt;xsl:text&gt;&quot;</xsl:text>
<xsl:value-of select="normalize-space()"/><xsl:text>&quot; </xsl:text>
<xsl:value-of select="$sOfManual"/><xsl:text>&lt;/xsl:text&gt;
&lt;/xsl:template&gt;
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="refentry[@id]/refentryinfo/title">
<xsl:text>&lt;xsl:template match="xref[@linkend='</xsl:text>
<xsl:value-of select="../../@id"/><xsl:text>']"&gt;
&lt;xsl:text&gt; &quot;</xsl:text>
<xsl:value-of select="normalize-space()"/><xsl:text>&quot;&lt;/xsl:text&gt;
&lt;/xsl:template&gt;
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="refsect2[@id]/title">
<xsl:text>&lt;xsl:template match="xref[@linkend='</xsl:text>
<xsl:value-of select="../@id"/><xsl:text>']"&gt;
&lt;xsl:text&gt;&quot;</xsl:text>
<xsl:value-of select="normalize-space()"/><xsl:text>&quot;&lt;/xsl:text&gt;
&lt;/xsl:template&gt;
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<!--
Debug/Diagnostics: Return the path to the specified node (by default the current).
-->
<xsl:template name="get-node-path">
<xsl:param name="Node" select="."/>
<xsl:for-each select="$Node">
<xsl:for-each select="ancestor-or-self::node()">
<xsl:choose>
<xsl:when test="name(.) = ''">
<xsl:text>text()</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('/', name(.))"/>
<xsl:choose>
<xsl:when test="@id">
<xsl:text>[@id=</xsl:text>
<xsl:value-of select="@id"/>
<xsl:text>]</xsl:text>
</xsl:when>
<xsl:when test="position() > 1">
<xsl:text>[</xsl:text><xsl:value-of select="position()"/><xsl:text>]</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,999 @@
<?xml version="1.0"?>
<!--
docbook-refentry-to-manual-sect1.xsl:
XSLT stylesheet for nicking the refsynopsisdiv bit of a
refentry (manpage) for use in the command overview section
in the user manual.
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://xsltsl.org/string"
>
<xsl:import href="string.xsl"/>
<xsl:import href="common-formatcfg.xsl"/>
<xsl:output method="text" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="g_fDebugText" select="0"/>
<xsl:variable name="g_sUnderlineRefSect1">
<xsl:text>===================================================================================================================</xsl:text>
</xsl:variable>
<xsl:variable name="g_sUnderlineRefSect2">
<xsl:text>-------------------------------------------------------------------------------------------------------------------</xsl:text>
</xsl:variable>
<xsl:variable name="g_sNewLine"><xsl:value-of select="'&#10;'" /></xsl:variable>
<!-- Sub-command style command (true) or single command (false). -->
<xsl:variable name="g_fSubCommands" select="not(not(//refsect2[@id]))" />
<!-- Translatable strings -->
<xsl:variable name="sUsage" select="'Usage'"/>
<xsl:variable name="sUsageUnderscore" select="'====='"/>
<!-- Default action, do nothing. -->
<xsl:template match="node()|@*"/>
<!--
main() - because we need to order the output in a specific manner
that is contrary to the data flow in the refentry, this is
going to look a bit more like a C program than a stylesheet.
-->
<xsl:template match="refentry">
<!-- Assert refetry expectations. -->
<xsl:if test="not(./refsynopsisdiv)">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have a refsynopsisdiv</xsl:message>
</xsl:if>
<xsl:if test="not(./refentryinfo/title)">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have a refentryinfo with title</xsl:message>
</xsl:if>
<xsl:if test="not(./refmeta/refentrytitle)">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have a refentryinfo with title</xsl:message>
</xsl:if>
<xsl:if test="./refmeta/refentrytitle != ./refnamediv/refname">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>The refmeta/refentrytitle and the refnamediv/refname must be identical</xsl:message>
</xsl:if>
<xsl:if test="not(./refsect1/title)">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have a refsect1 with title</xsl:message>
</xsl:if>
<xsl:if test="not(@id) or @id = ''">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have an id attribute</xsl:message>
</xsl:if>
<!-- variables -->
<xsl:variable name="sBaseId" select="@id"/>
<xsl:variable name="sDataBaseSym" select="concat('g_', translate(@id, '-', '_'))"/>
<!--
Convert the refsynopsisdiv into REFENTRY::Synopsis data.
-->
<xsl:text>
static const RTMSGREFENTRYSTR </xsl:text><xsl:value-of select="$sDataBaseSym"/><xsl:text>_synopsis[] =
{</xsl:text>
<xsl:for-each select="./refsynopsisdiv/cmdsynopsis">
<!-- Assert synopsis expectations -->
<xsl:if test="not(@id) or substring-before(@id, '-') != 'synopsis'">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>The refsynopsisdiv/cmdsynopsis elements must have an id starting with 'synopsis-'.</xsl:message>
</xsl:if>
<xsl:if test="not(starts-with(substring-after(@id, '-'), $sBaseId))">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>The refsynopsisdiv/cmdsynopsis elements @id is expected to include the refentry @id.</xsl:message>
</xsl:if>
<xsl:if test="not(../../refsect1/refsect2[@id=./@id]) and $g_fSubCommands">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>No refsect2 with id="<xsl:value-of select="@id"/>" found.</xsl:message>
</xsl:if>
<!-- Do the work. -->
<xsl:apply-templates select="."/>
</xsl:for-each>
<xsl:text>
};</xsl:text>
<!--
Convert the whole manpage to help text.
-->
<xsl:text>
static const RTMSGREFENTRYSTR </xsl:text><xsl:value-of select="$sDataBaseSym"/><xsl:text>_full_help[] =
{</xsl:text>
<!-- We start by combining the refentry title and the refpurpose into a short description. -->
<xsl:text>
{ </xsl:text><xsl:call-template name="calc-scope-for-refentry"/><xsl:text>,
"</xsl:text>
<xsl:apply-templates select="./refentryinfo/title/node()"/>
<xsl:text> -- </xsl:text>
<xsl:call-template name="capitalize">
<xsl:with-param name="text">
<xsl:apply-templates select="./refnamediv/refpurpose/node()"/>
</xsl:with-param>
</xsl:call-template>
<xsl:text>." },
{ RTMSGREFENTRYSTR_SCOPE_SAME, "" },</xsl:text>
<!-- The follows the usage (synopsis) section. -->
<xsl:text>
{ RTMSGREFENTRYSTR_SCOPE_GLOBAL,
"</xsl:text><xsl:value-of select="$sUsage"/><xsl:text>" },
{ RTMSGREFENTRYSTR_SCOPE_SAME,
"</xsl:text><xsl:value-of select="$sUsageUnderscore"/><xsl:text>" },</xsl:text>
<xsl:apply-templates select="./refsynopsisdiv/node()"/>
<!-- Then comes the description and other refsect1 -->
<xsl:for-each select="./refsect1">
<xsl:if test="name(*[1]) != 'title'"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Expected title as the first element in refsect1.</xsl:message></xsl:if>
<xsl:if test="text()"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>No text supported in refsect1.</xsl:message></xsl:if>
<xsl:if test="not(./remark[@role='help-skip'])">
<xsl:variable name="sTitle">
<xsl:apply-templates select="./title/node()"/>
</xsl:variable>
<xsl:text>
{ </xsl:text><xsl:call-template name="calc-scope-refsect1"/><xsl:text>, "" },
{ RTMSGREFENTRYSTR_SCOPE_SAME,
"</xsl:text><xsl:value-of select="$sTitle"/><xsl:text>" },
{ RTMSGREFENTRYSTR_SCOPE_SAME,
"</xsl:text>
<xsl:value-of select="substring($g_sUnderlineRefSect1, 1, string-length($sTitle))"/>
<xsl:text>" },</xsl:text>
<xsl:apply-templates select="./*[name() != 'title']"/>
<xsl:text>
{ RTMSGREFENTRYSTR_SCOPE_SAME, "" },</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>
};</xsl:text>
<!--
Generate the refentry structure.
-->
<xsl:text>
static const RTMSGREFENTRY </xsl:text><xsl:value-of select="$sDataBaseSym"/><xsl:text> =
{
/* .idInternal = */ HELP_CMD_</xsl:text>
<xsl:choose>
<xsl:when test="contains(@id, '-')">
<xsl:call-template name="str:to-upper"> <!-- Multi level command. -->
<xsl:with-param name="text" select="translate(substring-after(@id, '-'), '-', '_')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="str:to-upper"> <!-- Simple command. -->
<xsl:with-param name="text" select="@id"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
<xsl:text>,
/* .Synopsis = */ { RT_ELEMENTS(</xsl:text>
<xsl:value-of select="$sDataBaseSym"/><xsl:text>_synopsis), 0, </xsl:text>
<xsl:value-of select="$sDataBaseSym"/><xsl:text>_synopsis },
/* .Help = */ { RT_ELEMENTS(</xsl:text>
<xsl:value-of select="$sDataBaseSym"/><xsl:text>_full_help), 0, </xsl:text>
<xsl:value-of select="$sDataBaseSym"/><xsl:text>_full_help },
/* pszBrief = */ "</xsl:text>
<xsl:apply-templates select="./refnamediv/refpurpose/node()"/>
<!-- TODO: Add the command name too. -->
<xsl:text>"
};
</xsl:text>
</xsl:template>
<!--
Convert command synopsis to text.
-->
<xsl:template match="cmdsynopsis">
<xsl:if test="text()"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>cmdsynopsis with text is not supported.</xsl:message></xsl:if>
<xsl:if test="position() = 1">
<xsl:text>
{ </xsl:text><xsl:call-template name="calc-scope-cmdsynopsis"/><xsl:text> | RTMSGREFENTRYSTR_FLAGS_SYNOPSIS, "" },</xsl:text>
</xsl:if>
<xsl:text>
{ </xsl:text><xsl:call-template name="calc-scope-cmdsynopsis"/><xsl:text> | RTMSGREFENTRYSTR_FLAGS_SYNOPSIS,
"</xsl:text><xsl:call-template name="emit-indentation"/><xsl:apply-templates select="*|@*"/><xsl:text>" },</xsl:text>
</xsl:template>
<xsl:template match="sbr">
<xsl:text>" },
{ RTMSGREFENTRYSTR_SCOPE_SAME | RTMSGREFENTRYSTR_FLAGS_SYNOPSIS,
" </xsl:text><xsl:call-template name="emit-indentation"/> <!-- hardcoded in VBoxManageHelp.cpp too -->
</xsl:template>
<xsl:template match="cmdsynopsis/command">
<xsl:text>" },
{ RTMSGREFENTRYSTR_SCOPE_SAME | RTMSGREFENTRYSTR_FLAGS_SYNOPSIS,
"</xsl:text><xsl:call-template name="emit-indentation"/>
<xsl:apply-templates select="node()|@*"/>
</xsl:template>
<xsl:template match="cmdsynopsis/command[1]" priority="2">
<xsl:apply-templates select="node()|@*"/>
</xsl:template>
<xsl:template match="command|option|computeroutput|literal|emphasis|filename|citetitle|note">
<xsl:apply-templates select="node()|@*"/>
</xsl:template>
<xsl:template match="ulink">
<xsl:value-of select="@url"/>
</xsl:template>
<xsl:template match="replaceable">
<xsl:choose>
<xsl:when test="ancestor::arg">
<xsl:apply-templates />
</xsl:when>
<xsl:otherwise>
<xsl:text>&lt;</xsl:text>
<xsl:apply-templates />
<xsl:text>&gt;</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- duplicated in docbook2latex.xsl -->
<xsl:template match="arg|group">
<!-- separator char if we're not the first child -->
<xsl:if test="position() > 1">
<xsl:choose>
<xsl:when test="parent::group"><xsl:value-of select="$arg.or.sep"/></xsl:when>
<xsl:when test="ancestor-or-self::*/@sepchar"><xsl:value-of select="ancestor-or-self::*/@sepchar"/></xsl:when>
<xsl:otherwise><xsl:text> </xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:if>
<!-- open wrapping -->
<xsl:variable name="fWrappers" select="not(ancestor::group)"/>
<xsl:if test="$fWrappers">
<xsl:choose>
<xsl:when test="not(@choice) or @choice = ''"> <xsl:value-of select="$arg.choice.def.open.str"/></xsl:when>
<xsl:when test="@choice = 'opt'"> <xsl:value-of select="$arg.choice.opt.open.str"/></xsl:when>
<xsl:when test="@choice = 'req'"> <xsl:value-of select="$arg.choice.req.open.str"/></xsl:when>
<xsl:when test="@choice = 'plain'"/>
<xsl:otherwise><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Invalid arg choice: "<xsl:value-of select="@choice"/>"</xsl:message></xsl:otherwise>
</xsl:choose>
</xsl:if>
<!-- render the arg (TODO: may need to do more work here) -->
<xsl:apply-templates />
<!-- repeat wrapping -->
<xsl:choose>
<xsl:when test="@rep = 'norepeat' or not(@rep) or @rep = ''"/>
<xsl:when test="@rep = 'repeat'"> <xsl:value-of select="$arg.rep.repeat.str"/></xsl:when>
<xsl:otherwise><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Invalid rep choice: "<xsl:value-of select="@rep"/>"</xsl:message></xsl:otherwise>
</xsl:choose>
<!-- close wrapping -->
<xsl:if test="$fWrappers">
<xsl:choose>
<xsl:when test="not(@choice) or @choice = ''"> <xsl:value-of select="$arg.choice.def.close.str"/></xsl:when>
<xsl:when test="@choice = 'opt'"> <xsl:value-of select="$arg.choice.opt.close.str"/></xsl:when>
<xsl:when test="@choice = 'req'"> <xsl:value-of select="$arg.choice.req.close.str"/></xsl:when>
</xsl:choose>
<!-- Add a space padding if we're the last element in a repeating arg or group -->
<xsl:if test="(parent::arg or parent::group) and not(following-sibiling)">
<xsl:text> </xsl:text>
</xsl:if>
</xsl:if>
</xsl:template>
<!--
refsect2
-->
<xsl:template match="refsect2">
<!-- assertions -->
<xsl:if test="text()"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refsect2 shouldn't contain text</xsl:message></xsl:if>
<xsl:if test="count(./title) != 1"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refsect2 requires a title (<xsl:value-of select="ancestor-or-self::*[@id][1]/@id"/>)</xsl:message></xsl:if>
<!-- title / command synopsis - sets the scope. -->
<xsl:variable name="sTitle">
<xsl:apply-templates select="./title/text()"/>
</xsl:variable>
<xsl:text>
{ </xsl:text><xsl:call-template name="calc-scope-refsect2"/><xsl:text>, "" },
{ RTMSGREFENTRYSTR_SCOPE_SAME,
"</xsl:text><xsl:call-template name="emit-indentation"/>
<xsl:value-of select="$sTitle"/>
<xsl:text>" },
{ RTMSGREFENTRYSTR_SCOPE_SAME,
"</xsl:text><xsl:call-template name="emit-indentation"/>
<xsl:value-of select="substring($g_sUnderlineRefSect2, 1, string-length($sTitle))"/>
<xsl:text>" },</xsl:text>
<!-- <xsl:if test="./*[name() != 'title']/following::
{ RTMSGREFENTRYSTR_SCOPE_SAME, "y" },</xsl:text> cmdsynopsis -->
<!-- Format the text in the section -->
<xsl:for-each select="./*[name() != 'title']">
<xsl:apply-templates select="."/>
</xsl:for-each>
<!-- Add two blank lines, unless we're the last element in this refsect1. -->
<xsl:if test="position() != last()">
<xsl:text>
{ RTMSGREFENTRYSTR_SCOPE_SAME, "" },</xsl:text>
</xsl:if>
</xsl:template>
<!--
para
-->
<xsl:template match="para">
<xsl:if test="position() != 1 or not(parent::listitem)">
<xsl:text>
{ RTMSGREFENTRYSTR_SCOPE_SAME, "" },</xsl:text>
</xsl:if>
<xsl:call-template name="process-mixed"/>
</xsl:template>
<!--
variablelist
-->
<xsl:template match="variablelist">
<xsl:if test="*[not(self::varlistentry)]|text()">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Only varlistentry elements are supported in variablelist </xsl:message>
</xsl:if>
<xsl:for-each select="./varlistentry">
<xsl:if test="not(term) or not(listitem) or count(listitem) > 1">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Expected one or more term members and exactly one listentry member in varlistentry element.</xsl:message>
</xsl:if>
<xsl:if test="(not(@spacing) or @spacing != 'compact') and (position() > 1 or (count(../preceding-sibling::*) - count(../preceding-sibling::title) > 0))">
<xsl:text>
{ RTMSGREFENTRYSTR_SCOPE_SAME, "" },</xsl:text>
</xsl:if>
<xsl:apply-templates select="*"/>
</xsl:for-each>
</xsl:template>
<xsl:template match="varlistentry/term">
<xsl:call-template name="process-mixed"/>
</xsl:template>
<xsl:template match="varlistentry/listitem">
<xsl:call-template name="check-children">
<xsl:with-param name="UnsupportedNodes" select="*[not(self::para or self::itemizedlist or self::orderedlist or self::variablelist or self::note)]|text()"/>
<xsl:with-param name="SupportedNames">para, itemizedlist, orderedlist and note</xsl:with-param>
</xsl:call-template>
<xsl:apply-templates select="*"/>
</xsl:template>
<!--
itemizedlist and orderedlist
-->
<xsl:template match="itemizedlist|orderedlist">
<xsl:if test="*[not(self::listitem)]|text()">
<xsl:message terminate="yes">
<xsl:call-template name="error-prefix"/>Only listitem elements are supported in <xsl:value-of select="name()"/>:
<xsl:call-template name="list-nodes">
<xsl:with-param name="Nodes" select="*[not(self::listitem)]|text()"/>
</xsl:call-template>
</xsl:message>
</xsl:if>
<xsl:if test="parent::para">
<xsl:message terminate="yes"><xsl:value-of select="name()"/> inside a para is current not supported. <!-- no newline
-->Close the para before the list, it makes no difference to html and latex/pdf output.</xsl:message>
</xsl:if>
<xsl:if test="position() != 1 and (not(@spacing) or @spacing != 'compact')">
<xsl:text>
{ RTMSGREFENTRYSTR_SCOPE_SAME, "" },</xsl:text>
</xsl:if>
<xsl:for-each select="./listitem">
<xsl:apply-templates select="*"/>
</xsl:for-each>
</xsl:template>
<xsl:template match="itemizedlist/listitem|orderedlist/listitem">
<xsl:if test="*[not(self::para)]|text()">
<xsl:message terminate="yes">
<xsl:call-template name="error-prefix"/>Expected <xsl:value-of select="name()"/>/listitem to only contain para elements:
<xsl:call-template name="list-nodes">
<xsl:with-param name="Nodes" select="*[not(self::para)]|text()"/>
</xsl:call-template>
</xsl:message>
</xsl:if>
<xsl:if test="position() != 1 and @spaceing != 'compact'">
<xsl:text>
{ RTMSGREFENTRYSTR_SCOPE_SAME, "" },</xsl:text>
</xsl:if>
<xsl:apply-templates select="*"/>
</xsl:template>
<!--
Screen
-->
<xsl:template match="screen">
<xsl:if test="ancestor::para">
<xsl:text>" },</xsl:text>
</xsl:if>
<xsl:text>
{ RTMSGREFENTRYSTR_SCOPE_SAME,
"</xsl:text>
<xsl:for-each select="node()">
<xsl:choose>
<xsl:when test="name() = ''">
<xsl:call-template name="screen_text_line">
<xsl:with-param name="sText" select="."/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:if test="*">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Support for elements under screen has not been implemented: <xsl:value-of select="name()"/></xsl:message>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:if test="not(ancestor::para)">
<xsl:text>" },</xsl:text>
</xsl:if>
</xsl:template>
<xsl:template name="screen_text_line">
<xsl:param name="sText"/>
<xsl:choose>
<xsl:when test="contains($sText, '&#x0a;')">
<xsl:call-template name="escape_fixed_text">
<xsl:with-param name="sText" select="substring-before($sText,'&#x0a;')"/>
</xsl:call-template>
<xsl:if test="substring-after($sText,'&#x0a;')">
<xsl:text>" },
{ RTMSGREFENTRYSTR_SCOPE_SAME,
"</xsl:text>
<xsl:call-template name="screen_text_line">
<xsl:with-param name="sText" select="substring-after($sText,'&#x0a;')"/>
</xsl:call-template>
</xsl:if>
</xsl:when>
<xsl:otherwise> <!-- no newline, so use the whole string -->
<xsl:call-template name="escape_fixed_text">
<xsl:with-param name="sText" select="$sText"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Normalizes the current text node taking tailing and leading spaces
into account (unlike normalize-space which strips them mercilessly). -->
<xsl:template name="my-normalize-space-current">
<!-- <xsl:message>dbg0: position=<xsl:value-of select="position()"/> last=<xsl:value-of select="last()"/> .=|<xsl:value-of select="."/>|</xsl:message> -->
<xsl:if test="(starts-with(.,' ') or starts-with(., $g_sNewLine)) and position() != 1">
<xsl:value-of select="' '"/>
</xsl:if>
<xsl:value-of select="normalize-space(.)"/>
<xsl:if test="((substring(.,string-length(.)) = ' ') or (substring(.,string-length(.)) = $g_sNewLine)) and position() != last()">
<xsl:value-of select="' '"/>
</xsl:if>
</xsl:template>
<!--
Text escaping for C.
-->
<xsl:template match="text()" name="escape_text">
<!-- Leading whitespace hack! -->
<xsl:if test="(starts-with(.,' ') or starts-with(.,$g_sNewLine)) and position() != 1">
<xsl:text> </xsl:text>
<xsl:if test="boolean($g_fDebugText)">
<xsl:message>text: add lead space</xsl:message>
</xsl:if>
</xsl:if>
<!-- Body of text -->
<xsl:choose>
<xsl:when test="contains(., '\') or contains(., '&quot;')">
<xsl:variable name="sTmp">
<xsl:call-template name="str:subst">
<xsl:with-param name="text" select="normalize-space(.)"/>
<xsl:with-param name="replace" select="'\'"/>
<xsl:with-param name="with" select="'\\'"/>
<xsl:with-param name="disable-output-escaping" select="yes"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="sTmp2">
<xsl:call-template name="str:subst">
<xsl:with-param name="text" select="$sTmp"/>
<xsl:with-param name="replace" select="'&quot;'"/>
<xsl:with-param name="with" select="'\&quot;'"/>
<xsl:with-param name="disable-output-escaping" select="yes"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$sTmp2"/>
<xsl:if test="boolean($g_fDebugText)">
<xsl:message>text: |<xsl:value-of select="$sTmp2"/>|(1)</xsl:message>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="normalize-space(.)"/>
<xsl:if test="boolean($g_fDebugText)">
<xsl:message>text: |<xsl:value-of select="normalize-space(.)"/>|(2)</xsl:message>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
<!-- Trailing whitespace hack! -->
<xsl:if test="(substring(.,string-length(.)) = ' ' or substring(.,string-length(.)) = $g_sNewLine) and position() != last() and string-length(.) != 1">
<xsl:text> </xsl:text>
<xsl:if test="boolean($g_fDebugText)">
<xsl:message>text: add tail space</xsl:message>
</xsl:if>
</xsl:if>
</xsl:template>
<!-- Elements producing non-breaking strings (single line). -->
<xsl:template match="command/text()|option/text()|computeroutput/text()|arg/text()|filename/text()" name="escape_fixed_text">
<xsl:param name="sText"><xsl:call-template name="my-normalize-space-current"/></xsl:param>
<xsl:choose>
<xsl:when test="contains($sText, '\') or contains($sText, '&quot;')">
<xsl:variable name="sTmp1">
<xsl:call-template name="str:subst">
<xsl:with-param name="text" select="$sText"/>
<xsl:with-param name="replace" select="'\'"/>
<xsl:with-param name="with" select="'\\'"/>
<xsl:with-param name="disable-output-escaping" select="yes"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="sTmp2">
<xsl:call-template name="str:subst">
<xsl:with-param name="text" select="$sTmp1"/>
<xsl:with-param name="replace" select="'&quot;'"/>
<xsl:with-param name="with" select="'\&quot;'"/>
<xsl:with-param name="disable-output-escaping" select="yes"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="sTmp3">
<xsl:call-template name="str:subst">
<xsl:with-param name="text" select="$sTmp2"/>
<xsl:with-param name="replace" select="' '"/>
<xsl:with-param name="with" select="'\b'"/>
<xsl:with-param name="disable-output-escaping" select="yes"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$sTmp3"/>
<xsl:if test="boolean($g_fDebugText)">
<xsl:message>text! |<xsl:value-of select="$sTmp3"/>|</xsl:message>
</xsl:if>
</xsl:when>
<xsl:when test="contains($sText, ' ')">
<xsl:variable name="sTmp">
<xsl:call-template name="str:subst">
<xsl:with-param name="text" select="$sText"/>
<xsl:with-param name="replace" select="' '"/>
<xsl:with-param name="with" select="'\b'"/>
<xsl:with-param name="disable-output-escaping" select="yes"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$sTmp"/>
<xsl:if test="boolean($g_fDebugText)">
<xsl:message>text! |<xsl:value-of select="$sTmp"/>|</xsl:message>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$sText"/>
<xsl:if test="boolean($g_fDebugText)">
<xsl:message>text! |<xsl:value-of select="$sText"/>|</xsl:message>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
Unsupported elements and elements handled directly.
-->
<xsl:template match="synopfragment|synopfragmentref|title|refsect1">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>The <xsl:value-of select="name()"/> element is not supported</xsl:message>
</xsl:template>
<xsl:template match="xref">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>The <xsl:value-of select="name()"/> element is not supported, most likely the linkend is not defined or incorrectly processed by docbook-refentry-link-replacement-xsl-gen.xsl</xsl:message>
</xsl:template>
<!--
Fail on misplaced scoping remarks.
-->
<xsl:template match="remark[@role = 'help-scope']">
<xsl:choose>
<xsl:when test="parent::refsect1"/>
<xsl:when test="parent::refsect2"/>
<xsl:when test="parent::cmdsynopsis and ancestor::refsynopsisdiv"/>
<xsl:otherwise>
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Misplaced remark/@role=help-scope element.
Only supported on: refsect1, refsect2, refsynopsisdiv/cmdsynopsis</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
Execute synopsis copy remark (avoids duplication for complicated xml).
-->
<xsl:template match="remark[@role = 'help-copy-synopsis']">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>remark/@role=help-copy-synopsis is not supported by this stylesheet. Must preprocess input!</xsl:message>
</xsl:template>
<!--
Warn about unhandled elements
-->
<xsl:template match="*">
<xsl:message terminate="no">Warning: Unhandled element: <!-- no newline -->
<xsl:for-each select="ancestor-or-self::*">
<xsl:text>/</xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:if test="@id">
<xsl:value-of select="concat('[id=', @id ,']')"/>
</xsl:if>
</xsl:for-each>
</xsl:message>
</xsl:template>
<!--
Functions
Functions
Functions
-->
<!--
Processes mixed children, i.e. both text and regular elements.
Normalizes whitespace. -->
<xsl:template name="process-mixed">
<xsl:text>
{ RTMSGREFENTRYSTR_SCOPE_SAME,
"</xsl:text><xsl:call-template name="emit-indentation"/>
<xsl:for-each select="node()[not(self::remark)]">
<xsl:choose>
<xsl:when test="name() = ''">
<xsl:call-template name="escape_text"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:text>" },</xsl:text>
</xsl:template>
<!--
Element specific scoping.
-->
<xsl:template name="calc-scope-for-refentry">
<xsl:text>HELP_SCOPE_</xsl:text>
<xsl:choose>
<xsl:when test="contains(@id, '-')"> <!-- Multi level command. -->
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="translate(substring-after(@id, '-'), '-', '_')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise> <!-- Single command. -->
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="@id"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Figures out the scope of a refsect1 element. -->
<xsl:template name="calc-scope-refsect1">
<xsl:choose>
<xsl:when test="title[text() = 'Description']">
<xsl:text>RTMSGREFENTRYSTR_SCOPE_GLOBAL</xsl:text>
</xsl:when>
<xsl:when test="@id or remark[@role='help-scope']">
<xsl:call-template name="calc-scope-from-remark-or-id"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>RTMSGREFENTRYSTR_SCOPE_GLOBAL</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Figures out the scope of a refsect2 element. -->
<xsl:template name="calc-scope-refsect2">
<xsl:choose>
<xsl:when test="@id or remark[@role='help-scope']">
<xsl:call-template name="calc-scope-from-remark-or-id"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>RTMSGREFENTRYSTR_SCOPE_SAME</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Figures out the scope of a refsect1 element. -->
<xsl:template name="calc-scope-cmdsynopsis">
<xsl:choose>
<xsl:when test="ancestor::refsynopsisdiv">
<xsl:call-template name="calc-scope-from-remark-or-id">
<xsl:with-param name="sId" select="substring-after(@id, '-')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:text>RTMSGREFENTRYSTR_SCOPE_SAME</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
Scoping worker functions.
-->
<!-- Calculates the current scope from the scope remark or @id. -->
<xsl:template name="calc-scope-from-remark-or-id">
<xsl:param name="sId" select="@id"/>
<xsl:choose>
<xsl:when test="remark[@role='help-scope']">
<xsl:call-template name="calc-scope-consts-from-remark"/>
</xsl:when>
<xsl:when test="$sId != ''">
<xsl:call-template name="calc-scope-const-from-id">
<xsl:with-param name="sId" select="$sId"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>expected remark child or id attribute.</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Turns a @id into a scope constant.
Some woodoo taking place here here that chops the everything up to and
including the first refentry/@id word from all IDs before turning them into
constants (word delimiter '-'). -->
<xsl:template name="calc-scope-const-from-id">
<xsl:param name="sId" select="@id"/>
<xsl:param name="sAncestorId" select="ancestor::refentry/@id"/>
<xsl:text>HELP_SCOPE_</xsl:text>
<xsl:choose>
<xsl:when test="not($sAncestorId)"> <!-- Sanity check. -->
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>calc-scope-const-from-id is invoked without an refentry ancestor with a id. <xsl:call-template name="get-node-path"/> </xsl:message>
</xsl:when>
<xsl:when test="contains($sAncestorId, '-')"> <!-- Multi level command. -->
<xsl:variable name="sPrefix" select="concat(substring-before($sAncestorId, '-'), '-')"/>
<xsl:if test="not(contains($sId, $sPrefix))">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Expected sId (<xsl:value-of select="$sId"/>) to contain <xsl:value-of select="$sPrefix"/></xsl:message>
</xsl:if>
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="translate(substring-after($sId, $sPrefix), '-', '_')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise> <!-- Single command. -->
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="translate($sId, '-', '_')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Turns a remark into one or more scope constants. -->
<xsl:template name="calc-scope-consts-from-remark">
<xsl:param name="sCondition" select="remark/@condition"/>
<xsl:variable name="sNormalized" select="concat(normalize-space(translate($sCondition, ',;:|', ' ')), ' ')"/>
<xsl:if test="$sNormalized = ' ' or $sNormalized = ''">
<xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Empty @condition for help-scope remark.</xsl:message>
</xsl:if>
<xsl:choose>
<xsl:when test="substring-before($sNormalized, ' ') = 'GLOBAL'">
<xsl:text>RTMSGREFENTRYSTR_SCOPE_GLOBAL</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>HELP_SCOPE_</xsl:text><xsl:value-of select="substring-before($sNormalized, ' ')"/>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="calc-scope-const-from-remark-worker">
<xsl:with-param name="sList" select="substring-after($sNormalized, ' ')"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="calc-scope-const-from-remark-worker">
<xsl:param name="sList"/>
<xsl:if test="$sList != ''">
<xsl:choose>
<xsl:when test="substring-before($sList, ' ') = 'GLOBAL'">
<xsl:text>| RTMSGREFENTRYSTR_SCOPE_GLOBAL</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> | HELP_SCOPE_</xsl:text><xsl:value-of select="substring-before($sList, ' ')"/>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="calc-scope-const-from-remark-worker">
<xsl:with-param name="sList" select="substring-after($sList, ' ')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!--
Calculates and emits indentation list markup.
-->
<xsl:template name="emit-indentation">
<xsl:variable name="iDepth" select="count(ancestor-or-self::*)"/>
<xsl:for-each select="ancestor-or-self::*">
<xsl:choose>
<xsl:when test="self::refsect1
| self::refsect2
| self::refsect3
| self::refsynopsisdiv">
<xsl:text> </xsl:text>
</xsl:when>
<xsl:when test="self::term">
<!-- currently no indent. -->
</xsl:when>
<!-- Evidence here (especially with orderedlist) that doing list by for-each
listitem in the template matching the list type would be easier... -->
<xsl:when test="self::listitem and parent::itemizedlist and (position() + 1) = $iDepth">
<xsl:text> - </xsl:text>
</xsl:when>
<xsl:when test="self::listitem and parent::orderedlist and (position() + 1) = $iDepth">
<xsl:variable name="iNumber" select="count(preceding-sibling::listitem) + 1"/>
<xsl:if test="$iNumber &lt;= 9">
<xsl:text> </xsl:text>
</xsl:if>
<xsl:value-of select="$iNumber"/>
<xsl:text>. </xsl:text>
</xsl:when>
<xsl:when test="self::listitem">
<xsl:text> </xsl:text>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<!--
Captializes the given text.
-->
<xsl:template name="capitalize">
<xsl:param name="text"/>
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="substring($text,1,1)"/>
</xsl:call-template>
<xsl:value-of select="substring($text,2)"/>
</xsl:template>
<!--
Debug/Diagnostics: Return the path to the specified node (by default the current).
-->
<xsl:template name="get-node-path">
<xsl:param name="Node" select="."/>
<xsl:for-each select="$Node">
<xsl:for-each select="ancestor-or-self::node()">
<xsl:choose>
<xsl:when test="name(.) = ''">
<xsl:text>text()</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('/', name(.))"/>
<xsl:choose>
<xsl:when test="@id">
<xsl:text>[@id=</xsl:text>
<xsl:value-of select="@id"/>
<xsl:text>]</xsl:text>
</xsl:when>
<xsl:when test="position() > 1">
<xsl:text>[</xsl:text><xsl:value-of select="position()"/><xsl:text>]</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<!--
Debug/Diagnostics: Return error message prefix.
-->
<xsl:template name="error-prefix">
<xsl:param name="Node" select="."/>
<xsl:text>error: </xsl:text>
<xsl:call-template name="get-node-path">
<xsl:with-param name="Node" select="$Node"/>
</xsl:call-template>
<xsl:text>: </xsl:text>
</xsl:template>
<!--
Debug/Diagnostics: Print list of nodes (by default all children of current node).
-->
<xsl:template name="list-nodes">
<xsl:param name="Nodes" select="node()"/>
<xsl:for-each select="$Nodes">
<xsl:if test="position() != 1">
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:choose>
<xsl:when test="name(.) = ''">
<xsl:text>text:text()</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name(.)"/>
<xsl:if test="@id">
<xsl:text>[@id=</xsl:text>
<xsl:value-of select="@id"/>
<xsl:text>]</xsl:text>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template name="check-children">
<xsl:param name="Node" select="."/>
<xsl:param name="UnsupportedNodes" select="*"/>
<xsl:param name="SupportedNames" select="'none'"/>
<xsl:if test="count($UnsupportedNodes) != 0">
<xsl:message terminate="yes">
<xsl:call-template name="get-node-path">
<xsl:with-param name="Node" select="$Node"/>
</xsl:call-template>
<!-- -->: error: Only <xsl:value-of select="$SupportedNames"/> are supported as children to <!-- -->
<xsl:value-of select="name($Node)"/>
<!-- -->
Unsupported children: <!-- -->
<xsl:call-template name="list-nodes">
<xsl:with-param name="Nodes" select="$UnsupportedNodes"/>
</xsl:call-template>
</xsl:message>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,151 @@
<?xml version="1.0"?>
<!--
docbook-refentry-to-H-help.xsl:
XSLT stylesheet for generating command and sub-command
constants header for the built-in help.
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://xsltsl.org/string"
>
<xsl:import href="string.xsl"/>
<xsl:output method="text" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="g_sMode" select="not-specified"/>
<!-- Default action, do nothing. -->
<xsl:template match="node()|@*"/>
<!--
Generate SCOPE enum for a refentry. We convert the
cmdsynopsisdiv/cmdsynopsis IDs into constants.
-->
<xsl:template match="refentry">
<xsl:variable name="RefEntry" select="."/>
<xsl:variable name="sRefEntryId" select="@id"/>
<xsl:variable name="sBaseNm">
<xsl:choose>
<xsl:when test="contains($sRefEntryId, '-')"> <!-- Multi level command. -->
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="translate(substring-after($sRefEntryId, '-'), '-', '_')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise> <!-- Simple command. -->
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="translate($sRefEntryId, '-', '_')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<!-- Generate subcommand enums and defines -->
<xsl:when test="$g_sMode = 'subcmd'">
<!-- Start enum type and start off with the refentry id. -->
<xsl:text>
enum
{
#define HELP_SCOPE_</xsl:text>
<xsl:value-of select="$sBaseNm"/>
<xsl:value-of select="substring(' ',1,56 - string-length($sBaseNm) - 11)"/>
<xsl:text> RT_BIT_64(HELP_SCOPE_</xsl:text><xsl:value-of select="$sBaseNm"/><xsl:text>_BIT)
HELP_SCOPE_</xsl:text><xsl:value-of select="$sBaseNm"/><xsl:text>_BIT = 0</xsl:text>
<!-- Synopsis IDs -->
<xsl:for-each select="./refsynopsisdiv/cmdsynopsis[@id != concat('synopsis-', $sRefEntryId)]">
<xsl:variable name="sSubNm">
<xsl:text>HELP_SCOPE_</xsl:text>
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="translate(substring-after(substring-after(@id, '-'), '-'), '-', '_')"/>
</xsl:call-template>
</xsl:variable>
<xsl:text>,
#define </xsl:text>
<xsl:value-of select="$sSubNm"/>
<xsl:value-of select="substring(' ',1,56 - string-length($sSubNm))"/>
<xsl:text> RT_BIT_64(</xsl:text><xsl:value-of select="$sSubNm"/><xsl:text>_BIT)
</xsl:text>
<xsl:value-of select="$sSubNm"/><xsl:text>_BIT</xsl:text>
</xsl:for-each>
<!-- Add scoping info for refsect1 and refsect2 IDs that aren't part of the synopsis. -->
<xsl:for-each select=".//refsect1[@id] | .//refsect2[@id]">
<xsl:variable name="sThisId" select="@id"/>
<xsl:if test="not($RefEntry[@id = $sThisId]) and not($RefEntry/refsynopsisdiv/cmdsynopsis[@id = concat('synopsis-', $sThisId)])">
<xsl:variable name="sSubNm">
<xsl:text>HELP_SCOPE_</xsl:text>
<xsl:choose>
<xsl:when test="contains($sRefEntryId, '-')"> <!-- Multi level command. -->
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="translate(substring-after(@id, '-'), '-', '_')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise> <!-- Simple command. -->
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="translate(@id, '-', '_')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:text>,
#define </xsl:text>
<xsl:value-of select="$sSubNm"/>
<xsl:value-of select="substring(' ',1,56 - string-length($sSubNm))"/>
<xsl:text> RT_BIT_64(</xsl:text><xsl:value-of select="$sSubNm"/><xsl:text>_BIT)
</xsl:text>
<xsl:value-of select="$sSubNm"/><xsl:text>_BIT</xsl:text>
</xsl:if>
</xsl:for-each>
<!-- Done - complete the enum. -->
<xsl:text>,
HELP_SCOPE_</xsl:text><xsl:value-of select="$sBaseNm"/><xsl:text>_END
};
AssertCompile((int)HELP_SCOPE_</xsl:text><xsl:value-of select="$sBaseNm"/><xsl:text>_END &gt;= 1);
AssertCompile((int)HELP_SCOPE_</xsl:text><xsl:value-of select="$sBaseNm"/><xsl:text>_END &lt; 64);
AssertCompile(RT_BIT_64(HELP_SCOPE_</xsl:text><xsl:value-of select="$sBaseNm"/><xsl:text>_END - 1) &amp; RTMSGREFENTRYSTR_SCOPE_MASK);
</xsl:text>
</xsl:when>
<!-- Generate command enum value. -->
<xsl:when test="$g_sMode = 'cmd'">
<xsl:text> HELP_CMD_</xsl:text><xsl:value-of select="$sBaseNm"/><xsl:text>,
</xsl:text>
</xsl:when>
<!-- Shouldn't happen. -->
<xsl:otherwise>
<xsl:message terminate="yes">Bad or missing g_sMode string parameter value.</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,89 @@
<?xml version="1.0"?>
<!--
docbook-refentry-to-manpage-preprocessing.xsl:
XSLT stylesheet preprocessing remarks elements before
turning a refentry (manpage) into a unix manual page and
VBoxManage built-in help.
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://xsltsl.org/string"
>
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="no"/>
<!--
The default action is to copy everything.
-->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<!--
Execute synopsis copy remark (avoids duplication for complicated xml).
We strip the attributes off it.
-->
<xsl:template match="remark[@role = 'help-copy-synopsis']">
<xsl:choose>
<xsl:when test="parent::refsect2"/>
<xsl:otherwise>
<xsl:message terminate="yes">Misplaced remark/@role=help-copy-synopsis element.
Only supported on: refsect2</xsl:message>
</xsl:otherwise>
</xsl:choose>
<xsl:variable name="sSrcId">
<xsl:choose>
<xsl:when test="@condition"><xsl:value-of select="concat('synopsis-', @condition)"/></xsl:when>
<xsl:otherwise><xsl:value-of select="concat('synopsis-', ../@id)"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="CmdSynopsis" select="/refentry/refsynopsisdiv/cmdsynopsis[@id = $sSrcId]"/>
<xsl:if test="not($CmdSynopsis)">
<xsl:message terminate="yes">Could not find any cmdsynopsis with id=<xsl:value-of select="$sSrcId"/> in refsynopsisdiv.</xsl:message>
</xsl:if>
<xsl:element name="cmdsynopsis">
<xsl:apply-templates select="$CmdSynopsis/node()"/>
</xsl:element>
</xsl:template>
<!--
Remove bits only intended for the manual.
-->
<xsl:template match="remark[@role='help-manual']"/>
<!--
Remove remarks without a role.
These are used for leaving questions and such while working with the documentation team.
-->
<xsl:template match="remark[not(@role)]"/>
</xsl:stylesheet>

View file

@ -0,0 +1,58 @@
<?xml version="1.0"?>
<!--
docbook-to-man.xsl:
XSLT stylesheet that renders a refentry into a troff manpage.
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="manpages/docbook.xsl"/>
<!--
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>
-->
<!--
Extract manual's date from an *info/pubdate node (cf.
get.refentry.date). Detect RCS Date keyword.
-->
<xsl:template match="pubdate">
<xsl:choose>
<!-- careful with that keyword -->
<xsl:when test="starts-with(text(), concat('$', 'Date:'))">
<!-- Fetch the ISO 8601 date from inside -->
<xsl:value-of select="substring(text(), 8, 10)"/>
</xsl:when>
<xsl:otherwise>
<!-- Use as-is -->
<xsl:value-of select="text()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,74 @@
<?xml version="1.0"?>
<!--
docbook-refentry-to-manual-sect1.xsl:
XSLT stylesheet for nicking the refsynopsisdiv bit of a
refentry (manpage) for use in the command overview section
in the user manual.
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- Base operation is to copy. -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<!--
The refentry element is the top level one. We only process the
refsynopsisdiv sub element within it, since that is all we want.
-->
<xsl:template match="refentry">
<xsl:apply-templates select="refsynopsisdiv"/>
</xsl:template>
<!--
Combine all cmdsynopsis lines into a bunch of commands.
-->
<xsl:template match="refsynopsisdiv">
<xsl:if test="not(cmdsynopsis)">
<xsl:message terminate="yes">What? No cmdsynopsis in the refsynopsisdiv?</xsl:message>
</xsl:if>
<xsl:element name="cmdsynopsis">
<xsl:attribute name="id"><xsl:value-of select="/refentry/@id"/><xsl:text>-overview</xsl:text></xsl:attribute>
<xsl:for-each select="cmdsynopsis">
<xsl:copy-of select="node()"/>
</xsl:for-each>
</xsl:element>
</xsl:template>
<!-- Remove all remarks (for now). -->
<xsl:template match="remark"/>
</xsl:stylesheet>

View file

@ -0,0 +1,183 @@
<?xml version="1.0"?>
<!--
docbook-refentry-to-manual-sect1.xsl:
XSLT stylesheet for transforming a refentry (manpage)
to a sect1 for the user manual.
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://xsltsl.org/string"
>
<xsl:import href="string.xsl"/>
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- - - - - - - - - - - - - - - - - - - - - - -
global XSLT variables
- - - - - - - - - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - - - - - - - - -
base operation is to copy.
- - - - - - - - - - - - - - - - - - - - - - -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<!-- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -->
<!-- rename refentry to sect1 -->
<xsl:template match="refentry">
<xsl:element name="sect1">
<xsl:attribute name="condition">refentry</xsl:attribute>
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
<!-- Remove refentryinfo, keeping the title element. -->
<xsl:template match="refentryinfo">
<xsl:if test="./title">
<xsl:copy-of select="./title"/>
</xsl:if>
</xsl:template>
<!-- Morph refnamediv into a brief description. -->
<xsl:template match="refnamediv">
<xsl:element name="para">
<xsl:call-template name="capitalize">
<xsl:with-param name="text" select="normalize-space(./refpurpose)"/>
</xsl:call-template>
<xsl:text>.</xsl:text>
</xsl:element>
</xsl:template>
<!-- Morph the refsynopsisdiv part into a synopsis section. -->
<xsl:template match="refsynopsisdiv">
<xsl:if test="name(*[1]) != 'cmdsynopsis'"><xsl:message terminate="yes">Expected refsynopsisdiv to start with cmdsynopsis</xsl:message></xsl:if>
<xsl:if test="title"><xsl:message terminate="yes">No title element supported in refsynopsisdiv</xsl:message></xsl:if>
<xsl:element name="sect2">
<xsl:attribute name="role">not-in-toc</xsl:attribute>
<xsl:attribute name="condition">refsynopsisdiv</xsl:attribute>
<xsl:element name="title">
<xsl:text>Synopsis</xsl:text>
</xsl:element>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<!-- refsect1 -> sect2 -->
<xsl:template match="refsect1">
<xsl:if test="not(title)"><xsl:message terminate="yes">refsect1 requires title</xsl:message></xsl:if>
<xsl:element name="sect2">
<xsl:attribute name="role">not-in-toc</xsl:attribute>
<xsl:attribute name="condition">refsect1</xsl:attribute>
<xsl:if test="@id">
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
</xsl:if>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<!-- refsect2 -> sect3 -->
<xsl:template match="refsect2">
<xsl:if test="not(title)"><xsl:message terminate="yes">refsect2 requires title</xsl:message></xsl:if>
<xsl:element name="sect3">
<xsl:attribute name="role">not-in-toc</xsl:attribute>
<xsl:attribute name="condition">refsect2</xsl:attribute>
<xsl:if test="@id">
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
</xsl:if>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<!-- refsect3 -> sect4 -->
<xsl:template match="refsect3">
<xsl:if test="not(title)"><xsl:message terminate="yes">refsect3 requires title</xsl:message></xsl:if>
<xsl:element name="sect4">
<xsl:attribute name="role">not-in-toc</xsl:attribute>
<xsl:attribute name="condition">refsect3</xsl:attribute>
<xsl:if test="@id">
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
</xsl:if>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<!-- Remove refmeta. -->
<xsl:template match="refmeta"/>
<!--
remark extensions:
-->
<!-- Default: remove all remarks. -->
<xsl:template match="remark"/>
<!-- help-manual - stuff that should only be included in the manual. -->
<xsl:template match="remark[@role = 'help-manual']">
<xsl:apply-templates/>
</xsl:template>
<!-- help-copy-synopsis - used in refsect2 to copy synopsis from the refsynopsisdiv. -->
<xsl:template match="remark[@role = 'help-copy-synopsis']">
<xsl:if test="not(parent::refsect2)">
<xsl:message terminate="yes">The help-copy-synopsis remark is only applicable in refsect2.</xsl:message>
</xsl:if>
<xsl:variable name="sSrcId" select="concat('synopsis-',../@id)"/>
<xsl:if test="not(/refentry/refsynopsisdiv/cmdsynopsis[@id = $sSrcId])">
<xsl:message terminate="yes">Could not find any cmdsynopsis with id=<xsl:value-of select="$sSrcId"/> in refsynopsisdiv.</xsl:message>
</xsl:if>
<xsl:element name="cmdsynopsis">
<xsl:copy-of select="/refentry/refsynopsisdiv/cmdsynopsis[@id = $sSrcId]/node()"/>
</xsl:element>
</xsl:template>
<!--
Captializes the given text.
-->
<xsl:template name="capitalize">
<xsl:param name="text"/>
<xsl:call-template name="str:to-upper">
<xsl:with-param name="text" select="substring($text,1,1)"/>
</xsl:call-template>
<xsl:value-of select="substring($text,2)"/>
</xsl:template>
</xsl:stylesheet>

1305
doc/manual/docbook2latex.xsl Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2019-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<sect1>
Blah.
<xsect2>
More blah.
</xsect2>
</sect1>

View file

@ -0,0 +1,32 @@
# $Id: .scm-settings $
## @file
# Source code massager settings for the manual.
#
#
# Copyright (C) 2010-2023 Oracle and/or its affiliates.
#
# This file is part of VirtualBox base platform packages, as
# available from https://www.virtualbox.org.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, in version 3 of the
# License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <https://www.gnu.org/licenses>.
#
# SPDX-License-Identifier: GPL-3.0-only
#
/oracle-accessibility-ohc-en.xml: --external-copyright --no-strip-trailing-blanks
/oracle-support-en.xml: --external-copyright --no-strip-trailing-blanks
/oracle-diversity.xml: --external-copyright --no-strip-trailing-blanks

View file

@ -0,0 +1,250 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
<!ENTITY % all.entities SYSTEM "all-entities.ent">
%all.entities;
]>
<book>
<bookinfo>
<title>&VBOX_PRODUCT;</title>
<subtitle>Accessibility Reference</subtitle>
<edition>Version &VBOX_VERSION_STRING;</edition>
<corpauthor>&VBOX_VENDOR;</corpauthor>
<address>https://www.virtualbox.org</address>
<copyright>
<year>2016-&VBOX_C_YEAR;</year>
<holder>&VBOX_VENDOR;</holder>
</copyright>
</bookinfo>
<chapter>
<title>Introduction</title>
<para>
Welcome to the <emphasis role="bold">VirtualBox Accessibility Support</emphasis> documentation! This document is primarily
a reference to help people who are interested in our project accessibility support and will describe how to use VirtualBox
user interface step-by-step. Since whole the application navigation will be explained here, this document will also be
helpful for those who are not familiar with our product user interface and wish to learn more. It will be written in a bit
excessive manner so that many obvious things will be explained too precisely to make it easier to understand by ear for a
blind users. The document will be periodically updated with recent changes and test-cases allowing us to more strictly
follow the required guidelines and make our product fully accessible.
</para>
<para>
Our application is based on Qt5, a powerful cross-platform library which allows to visualize various user interface ideas
the most flexible and native way. This also means that the library we use is responsible for many navigation and
accessibility aspects (like fonts, size hints, colors, look&amp;feel patterns and many other things), but not for all of
them. Nativity as one of the main ideas of the Qt-based application sometimes brings additional complexity because there is
always at least one host which uses unique combination of fonts and colors which breaks accessibility support in an
unpredictable way.
</para>
<para>
Independently on platform we are supporting screen-reader applications which can communicate with Qt5 accessibility
interface which supports Microsoft Active Accessibility (MSAA), OS X Accessibility, and the Unix/X11 AT-SPI standard.
</para>
<para>
Our application user interface is able to be started in two modes:
<itemizedlist>
<listitem>
<para>
First of them is <emphasis role="bold">VirtualBox Manager</emphasis> user interface, the main application window
which allows to manage and configure virtual machines and their groups. Besides that, this window provides user with
access to various global and machine related tools allowing to administrate some of VirtualBox objects and their
settings.
</para>
</listitem>
<listitem>
<para>
Second application mode is <emphasis role="bold">Virtual Machine</emphasis> user interface, which allows to control
virtual machine guest screens as separate application windows. Besides that, this interface allows to access some of
machine tools and adjust guest screens up to your needs, by changing their resolution and toggling full-screen,
seamless and scaled modes.
</para>
</listitem>
</itemizedlist>
But first of all we should start from the <emphasis role="bold">General Concept</emphasis> which is related to whole the
GUI and summarizes the navigation and accessibility aspects we are using for whole application.
</para>
</chapter>
<chapter>
<title>General concept</title>
<para>
This chapter describes the general navigation and accessibility concept. We should note that not every detail of this
concept is already implemented and not every widget in our project already follows that concept. There is still large work
to be done in that regard. But in the end whole the project should correspond to this concept.
</para>
<para>
In short, every application window of our project should be navigated using the following approaches:
<itemizedlist>
<listitem><para>Mouse Navigation</para></listitem>
<listitem><para>Keyboard Navigation</para></listitem>
<listitem><para>Screen-reader Navigation</para></listitem>
</itemizedlist>
</para>
<sect1>
<title>Mouse Navigation</title>
<itemizedlist>
<listitem>
<para>
Each interactable widget can be focused with mouse (if that is not restricted by underlying host OS).
</para>
</listitem>
<listitem>
<para>
Each hovered interactable widget causes own tool-tip to appear.
</para>
</listitem>
<listitem>
<para>
Each tool-tip is given either in imperative mood (ex. "Create new virtual machine") or in short form (ex. "New").
</para>
</listitem>
<listitem>
<para>
Short tool-tip form is only used if context is obvious for a user.
</para>
</listitem>
<listitem>
<para>
Tool-tip can contain shortcut mentioned in parentheses.
</para>
</listitem>
<listitem>
<para>
Each hovered menu bar / toolbar action causes own status-tip to appear (if window have status-bar).
</para>
</listitem>
<listitem>
<para>
Each status-tip is given in imperative mood only.
</para>
</listitem>
<listitem>
<para>
TBD...
</para>
</listitem>
</itemizedlist>
</sect1>
<sect1>
<title>Keyboard Navigation</title>
<itemizedlist>
<listitem>
<para>
Each interactable widget can be focused with keyboard (if that is not restricted by underlying host OS).
</para>
</listitem>
<listitem>
<para>
Focusing is possible through tabbing or mnemonic navigation.
</para>
</listitem>
<listitem>
<para>
Each button and menu bar / toolbar action can be directly activated with keyboard.
</para>
</listitem>
<listitem>
<para>
Activation is possible via shortcut or mnemonic.
</para>
</listitem>
<listitem>
<para>
Each shortcut is configurable through application preferences.
</para>
</listitem>
<listitem>
<para>
Mnemonic mentioned above is underlined alphanumeric character which is a part of widget label (if widget has label).
Mnemonic being triggered in conjunction with the Alt key.
</para>
</listitem>
<listitem>
<para>
Each mnemonic is unique within the visible part of current application window, there are no collisions.
</para>
</listitem>
<listitem>
<para>
TBD...
</para>
</listitem>
</itemizedlist>
</sect1>
<sect1>
<title>Screen-reader Navigation</title>
<itemizedlist>
<listitem>
<para>
Each interactable widget can be focused with screen-reader cursor.
</para>
</listitem>
<listitem>
<para>
Each focused widget have clear name (or full description) in native user language.
</para>
</listitem>
<listitem>
<para>
Each button and menu bar / toolbar action can be directly activated through the screen-reader cursor functionality.
</para>
</listitem>
<listitem>
<para>
Each complex widget which has children (like list, tree, table and similar) is represented as closed group which
encapsulates it's children clearly.
</para>
</listitem>
<listitem>
<para>
While navigating user is able to skip any group without forcing to be entered inside.
</para>
</listitem>
<listitem>
<para>
Each group child can be a group itself with the same rules as above applicable.
</para>
</listitem>
<listitem>
<para>
Each text-field can be directly edited through the screen-reader cursor functionality.
</para>
</listitem>
<listitem>
<para>
TBD...
</para>
</listitem>
</itemizedlist>
</sect1>
</chapter>
</book>
<!-- vim: set shiftwidth=2 tabstop=2 expandtab: -->

View file

6324
doc/manual/en_US/SDKRef.xml Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
<!ENTITY % all.entities SYSTEM "all-entities.ent">
%all.entities;
]>
<book id="VBOXU" lang="en">
<!-- VBox bookinfo section -->
<bookinfo>
<title>&VBOX_PRODUCT;</title>
<subtitle>User Manual</subtitle>
<edition>Version &VBOX_VERSION_STRING;</edition>
<corpauthor>&VBOX_VENDOR;</corpauthor>
<address>http://www.virtualbox.org</address>
<copyright>
<year>2004-&VBOX_C_YEAR;</year>
<holder>&VBOX_VENDOR;</holder>
</copyright>
</bookinfo>
<xi:include href="user_Preface.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_Introduction.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_Installation.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_BasicConcepts.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_GuestAdditions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_Storage.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_Networking.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_Frontends.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_VBoxManage.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_AdvancedTopics.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_Technical.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_VirtualBoxAPI.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_Troubleshooting.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_Security.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_KnownIssues.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_ChangeLog.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_ThirdParty.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_PrivacyPolicy.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="user_Glossary.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</book>

View file

@ -0,0 +1,41 @@
<?xml version="1.0"?>
<!--
docbook-refentry-link-replacement-xsl-gen.xsl:
XSLT stylesheet for generate a stylesheet that replaces links
to the user manual in the manpages.
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://xsltsl.org/string"
>
<xsl:import href="../docbook-refentry-link-replacement-xsl-gen.xsl"/>
<!-- Translated strings -->
<!-- none needed, English is the base language -->
</xsl:stylesheet>

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 KiB

View file

@ -0,0 +1,239 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
manpage, user manual, usage: VBoxHeadless
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
<!ENTITY % all.entities SYSTEM "all-entities.ent">
%all.entities;
]>
<refentry id="man_vboxheadless" lang="en">
<refentryinfo>
<pubdate>August 2019</pubdate>
<title>VBoxHeadless</title>
</refentryinfo>
<refmeta>
<refentrytitle>VBoxHeadless</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>VBoxHeadless</refname>
<refpurpose>&product-name; remote desktop server</refpurpose>
<refclass>Oracle VM VirtualBox</refclass>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis id="synopsis-vboxmanage-vboxheadless">
<command>VBoxHeadless</command>
<arg>--startvm=<group>
<arg choice="plain"><replaceable>uuid</replaceable></arg>
<arg choice="plain"><replaceable>vmname</replaceable></arg>
</group></arg>
<arg>--vrde=<group choice="plain">
<arg choice="plain">on</arg>
<arg choice="plain">off</arg>
<arg choice="plain">config</arg>
</group></arg>
<arg>--vrdeproperty=<replaceable>prop-name</replaceable>=[<replaceable>prop-value</replaceable>]</arg>
<arg>--settingspw=[<replaceable>password</replaceable>]</arg>
<arg>--settingspwfile=<replaceable>password-file</replaceable></arg>
<arg>--start-paused=<replaceable>vmname</replaceable></arg>
<arg>--capture</arg>
<arg>--width=<replaceable>width</replaceable></arg>
<arg>--height=<replaceable>height</replaceable></arg>
<arg>--bitrate=<replaceable>bit-rate</replaceable></arg>
<arg>--filename=<replaceable>filename</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
The <command>VBoxHeadless</command> command is an alternate front
end that enables you to remotely manage virtual machines (VMs).
The front end is a CLI rather than the VirtualBox Manager
graphical user interface (GUI).
</para>
<para>
For information about using this command, see
<xref linkend="vboxheadless" />.
</para>
<refsect2 id="vboxmanage-vboxheadless-command-options">
<title>Command Options</title>
<variablelist>
<varlistentry>
<term><option>--startvm=<replaceable>uuid</replaceable> | <replaceable>vmname</replaceable></option></term>
<listitem><para>
Specifies the Universally Unique Identifier (UUID) or name
of the VM to start.
</para><para>
Use the <command>VBoxManage list vms</command> command to
obtain VM information.
</para><para>
The short versions of this option are <option>-s</option>
and <option>-startvm</option>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--vrde=on | off | config</option></term>
<listitem><para>
Specifies how to use the VRDP server. The default value is
<literal>config</literal>. Valid values are as follows:
</para><itemizedlist>
<listitem><para>
<literal>on</literal> enables the VRDP server.
</para><screen>VBoxHeadless --startvm=<replaceable>vmname</replaceable> --vrde=on</screen></listitem>
<listitem><para>
<literal>off</literal> disables the VRDP server.
</para><screen>VBoxHeadless --startvm=<replaceable>vmname</replaceable> --vrde=off</screen></listitem>
<listitem><para>
<literal>config</literal> enables the VRDP server
depending on the VM configuration.
</para><screen>VBoxHeadless --startvm=<replaceable>vmname</replaceable> --vrde=config</screen></listitem>
</itemizedlist><para>
The short version of this option is <option>-v</option>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--vrdeproperty=<replaceable>prop-name</replaceable>=<replaceable>prop-value</replaceable></option></term>
<listitem><para>
Specifies a value for one of the following properties:
</para><itemizedlist>
<listitem><para>
The <literal>TCP/Ports</literal> property value is a
comma-separated list of ports to which the VRDE server
can bind. Use a hyphen (<literal>-</literal>) between
two port numbers to specify a range of ports.
</para></listitem>
<listitem><para>
The <literal>TCP/Address</literal> property value is
the interface IP address to which to bind the VRDE
server.
</para></listitem>
</itemizedlist></listitem>
</varlistentry>
<varlistentry>
<term><option>--settingspw=[<replaceable>password</replaceable>]</option></term>
<listitem><para>
Specifies a settings password to access encrypted
settings. If you do not specify the password on the
command line, <command>VBoxHeadless</command> prompts you
for the password.
</para><remark>
This design does not conform to Oracle's security
guidelines. You should not be able to specify a password
on the command line because the password can be seen in a
process listing.
</remark></listitem>
</varlistentry>
<varlistentry>
<term><option>--settingspwfile=<replaceable>password-file</replaceable></option></term>
<listitem><para>
Specifies the file that contains the settings password.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--start-paused=<replaceable>vmname</replaceable></option></term>
<listitem><para>
Starts the specified VM in the paused state.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--capture</option></term>
<listitem><para>
Records the VM screen output to a file. In addition to
this option, you must use the <option>--filename</option>
option to specify the name of the file.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--width=<replaceable>width</replaceable></option></term>
<listitem><para>
Specifies the frame width of the recording in pixels. This
option is associated with the <option>--capture</option>
option.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--height=<replaceable>height</replaceable></option></term>
<listitem><para>
Specifies the frame height of the recording in pixels.
This option is associated with the
<option>--capture</option> option.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--bitrate=<replaceable>bit-rate</replaceable></option></term>
<listitem><para>
Specifies the bit rate of the recording in kilobits per
second. This option is associated with the
<option>--capture</option> option.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--filename=<replaceable>filename</replaceable></option></term>
<listitem><para>
Specifies the name of the file in which to store the
recording. The codec used is based on the file extension
that you choose. You must specify this option if you use
the <option>--capture</option> option.
</para><remark>
Where can we get information about the file extensions
that are supported?
</remark></listitem>
</varlistentry>
</variablelist>
</refsect2>
</refsect1>
<refsect1>
<title>Examples</title>
<remark role="help-scope" condition="GLOBAL"/>
<para>
The following command starts the <literal>ol7u4</literal> VM:
</para>
<screen>$ VBoxHeadless --startvm "ol7u4"</screen>
<para>
The following command starts the <literal>ol7u6</literal> VM in
the Paused state.
</para>
<screen>$ VBoxHeadless --startvm "ol7u6" --start-paused</screen>
<para>
The following command starts the <literal>ol7u6</literal> VM and
records the session. The recording is saved to the
<filename>ol7u6-recording</filename> WebM file.
</para>
<screen>$ VBoxHeadless --startvm "ol7u6" --capture --filename ol7u6-recording.webm</screen>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<xref linkend="vboxmanage-list" />,
<xref linkend="vboxmanage-startvm" />
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
manpage, user manual, usage: VBoxManage adoptstate
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
<!ENTITY % all.entities SYSTEM "all-entities.ent">
%all.entities;
]>
<refentry id="vboxmanage-adoptstate" lang="en">
<refentryinfo>
<pubdate>$Date: 2023-01-17 15:15:46 +0100 (Tue, 17 Jan 2023) $</pubdate>
<title>VBoxManage adoptstate</title>
</refentryinfo>
<refmeta>
<refentrytitle>VBoxManage-adoptstate</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>VBoxManage-adoptstate</refname>
<refpurpose>change a virtual machine's state based on a saved state file</refpurpose>
<refclass>&product-name;</refclass>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis id="synopsis-vboxmanage-adoptstate">
<!-- The 'id' is mandatory and must start with 'synopsis-'. -->
<command>VBoxManage adoptstate</command>
<group choice="req">
<arg choice="plain"><replaceable>uuid</replaceable></arg>
<arg choice="plain"><replaceable>vmname</replaceable></arg>
</group>
<arg choice="req"><replaceable>state-filename</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
The <command>VBoxManage adoptstate</command> command enables you
to change the state of a virtual machine (VM) to a state described
in a saved state file (<filename>.sav</filename>). This action is
referred to as a VM <emphasis>adopting</emphasis> a saved state
file. The saved state file must be separate from the VM
configuration.
</para>
<para>
When you start the VM after adopting the saved state, the VM
restores its state from the saved state file.
</para>
<para>
Only use this command for custom deployments.
</para>
<variablelist>
<varlistentry>
<term><replaceable>uuid</replaceable> | <replaceable>vmname</replaceable></term>
<listitem><para>
Specifies the Universally Unique Identifier (UUID) or name
of the VM.
</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>state-filename</replaceable></term>
<listitem><para>
Specifies the name of the saved state file.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Examples</title>
<remark role="help-scope" condition="GLOBAL" />
<para>
The following command adopts a saved state file called
<filename>mystate.sav</filename> by a VM called <literal>vm2</literal>.
A subsequent start of the VM called <literal>vm2</literal> restores the
state from the saved state file <filename>mystate.sav</filename>.
</para>
<screen>$ VBoxManage adoptstate vm2 /home/user/mystate.sav</screen>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<xref linkend="vboxmanage-discardstate"/>
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,307 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
manpage, user manual, usage: VBoxManage bandwidthctl
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
<!ENTITY % all.entities SYSTEM "all-entities.ent">
%all.entities;
]>
<refentry id="vboxmanage-bandwidthctl" lang="en">
<refentryinfo>
<pubdate>$Date: 2023-01-17 15:15:46 +0100 (Tue, 17 Jan 2023) $</pubdate>
<title>VBoxManage bandwidthctl</title>
</refentryinfo>
<refmeta>
<refentrytitle>VBoxManage-bandwidthctl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>VBoxManage-bandwidthctl</refname>
<refpurpose>manage bandwidth groups</refpurpose>
<refclass>&product-name;</refclass>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis id="synopsis-vboxmanage-bandwidthctl-add">
<!-- The 'id' is mandatory and must start with 'synopsis-'. -->
<command>VBoxManage bandwidthctl</command>
<group choice="req">
<arg choice="plain"><replaceable>uuid</replaceable></arg>
<arg choice="plain"><replaceable>vmname</replaceable></arg>
</group>
<arg choice="plain">add</arg>
<arg choice="req"><replaceable>bandwidth-group-name</replaceable></arg>
<arg choice="req">--limit=<replaceable>bandwidth-limit</replaceable>[k|m|g|K|M|G]</arg>
<arg choice="req">--type=disk|network</arg>
</cmdsynopsis>
<cmdsynopsis id="synopsis-vboxmanage-bandwidthctl-list">
<command>VBoxManage bandwidthctl</command>
<group choice="req">
<arg choice="plain"><replaceable>uuid</replaceable></arg>
<arg choice="plain"><replaceable>vmname</replaceable></arg>
</group>
<arg choice="plain">list</arg>
<arg>--machinereadable</arg>
</cmdsynopsis>
<cmdsynopsis id="synopsis-vboxmanage-bandwidthctl-remove">
<command>VBoxManage bandwidthctl</command>
<group choice="req">
<arg choice="plain"><replaceable>uuid</replaceable></arg>
<arg choice="plain"><replaceable>vmname</replaceable></arg>
</group>
<arg choice="plain">remove</arg>
<arg choice="req"><replaceable>bandwidth-group-name</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis id="synopsis-vboxmanage-bandwidthctl-set">
<command>VBoxManage bandwidthctl</command>
<group choice="req">
<arg choice="plain"><replaceable>uuid</replaceable></arg>
<arg choice="plain"><replaceable>vmname</replaceable></arg>
</group>
<arg choice="plain">set</arg>
<arg choice="req"><replaceable>bandwidth-group-name</replaceable></arg>
<arg choice="req">--limit=<replaceable>bandwidth-limit</replaceable>[k|m|g|K|M|G]</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
The <command>VBoxManage bandwidthctl</command> command enables you
to manage bandwidth groups for virtual machines (VMs). A bandwidth
group specifies the bandwidth limit for the disks or for the
network adapters of a VM.
</para>
<para>
Note that a network bandwidth limit applies only to the outbound
traffic from the VM. The inbound traffic is unlimited.
</para>
<refsect2 id="vboxmanage-bandwidthctl-add">
<title>Create a Bandwidth Group</title>
<remark role="help-copy-synopsis"/>
<para>
The <command>VBoxManage bandwidthctl add</command> command
creates a bandwidth group for the specified VM. You must specify
whether the bandwidth group is for disks or for networks, and
specify the bandwidth limit.
</para>
<variablelist>
<varlistentry>
<term><replaceable>uuid</replaceable> | <replaceable>vmname</replaceable></term>
<listitem><para>
Specifies the Universally Unique Identifier (UUID) or the
name of the VM.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option><replaceable>bandwidth-group-name</replaceable></option></term>
<listitem><para>
Specifies the name of the bandwidth group.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--type=disk|network</option></term>
<listitem><para>
Specifies the type of the bandwidth group:
<literal>disk</literal> and <literal>network</literal>.
For more information, see
<xref linkend="storage-bandwidth-limit" /> or
<xref linkend="network_bandwidth_limit" />.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--limit=<replaceable>bandwidth-limit</replaceable>[k|m|g|K|M|G]</option></term>
<listitem><para>
Specifies the bandwidth limit for a bandwidth group. The
default unit is megabytes per second. You can modify this
value while the VM is running.
</para><para>
You can change the unit by appending one of the following
unit specifiers to the bandwidth limit:
</para><itemizedlist>
<listitem><para>
<literal>k</literal> &ndash; kilobits per second
</para></listitem>
<listitem><para>
<literal>m</literal> &ndash; megabits per second
</para></listitem>
<listitem><para>
<literal>g</literal> &ndash; gigabits per second
</para></listitem>
<listitem><para>
<literal>K</literal> &ndash; kilobytes per second
</para></listitem>
<listitem><para>
<literal>M</literal> &ndash; megabytes per second
</para></listitem>
<listitem><para>
<literal>G</literal> &ndash; gigabytes per second
</para></listitem>
</itemizedlist></listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2 id="vboxmanage-bandwidthctl-list">
<title>List Bandwidth Groups</title>
<remark role="help-copy-synopsis"/>
<para>
The <command>VBoxManage bandwidthctl list</command> command
lists the all the bandwidth groups that have been defined for
the specified VM. Use the <option>--machinereadable</option>
option to produce the output in a machine-readable format, which
uses name-value pairs.
</para>
<variablelist>
<varlistentry>
<term><replaceable>uuid</replaceable> | <replaceable>vmname</replaceable></term>
<listitem><para>
Specifies the UUID or the name of the VM.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--machinereadable</option></term>
<listitem><para>
Outputs the information about the bandwidth groups in
name-value pairs.
</para></listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2 id="vboxmanage-bandwidthctl-remove">
<title>Remove a Bandwidth Group</title>
<remark role="help-copy-synopsis"/>
<para>
The <command>VBoxManage bandwidthctl remove</command> command
removes a bandwidth group.
</para>
<note>
<para>
To successfully remove a bandwidth group, ensure that it is
not referenced by any disk or adapter in the running VM.
</para>
</note>
<variablelist>
<varlistentry>
<term><replaceable>uuid</replaceable> | <replaceable>vmname</replaceable></term>
<listitem><para>
Specifies the UUID or the name of the VM.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option><replaceable>bandwidth-group-name</replaceable></option></term>
<listitem><para>
Specifies the name of the bandwidth group.
</para></listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2 id="vboxmanage-bandwidthctl-set">
<title>Modify the Bandwidth Limit of a Bandwidth Group</title>
<remark role="help-copy-synopsis"/>
<para>
The <command>VBoxManage bandwidthctl set</command> command
modifies the bandwidth limit for a bandwidth group.
</para>
<variablelist>
<varlistentry>
<term><replaceable>uuid</replaceable> | <replaceable>vmname</replaceable></term>
<listitem><para>
Specifies the UUID or the name of the VM.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option><replaceable>bandwidth-group-name</replaceable></option></term>
<listitem><para>
Specifies the name of the bandwidth group.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--limit=<replaceable>bandwidth-limit</replaceable>[k|m|g|K|M|G]</option></term>
<listitem><para>
Specifies the bandwidth limit for a bandwidth group. The
default unit is megabytes per second. You can modify this
value while the VM is running.
</para><para>
You can change the unit by appending one of the following
unit specifiers to the bandwidth limit:
</para><itemizedlist>
<listitem><para>
<literal>k</literal> &ndash; kilobits per second
</para></listitem>
<listitem><para>
<literal>m</literal> &ndash; megabits per second
</para></listitem>
<listitem><para>
<literal>g</literal> &ndash; gigabits per second
</para></listitem>
<listitem><para>
<literal>K</literal> &ndash; kilobytes per second
</para></listitem>
<listitem><para>
<literal>M</literal> &ndash; megabytes per second
</para></listitem>
<listitem><para>
<literal>G</literal> &ndash; gigabytes per second
</para></listitem>
</itemizedlist></listitem>
</varlistentry>
</variablelist>
</refsect2>
</refsect1>
<refsect1>
<title>Examples</title>
<remark role="help-scope" condition="GLOBAL"/>
<para>
The following example shows how to use the <command>VBoxManage
bandwidthctl</command> command to create the
<literal>Limit</literal> bandwidth group and set the limit to 20
Mbps. Then use the <command>VBoxManage modifyvm</command> command
to assign this bandwidth group to the first and second adapters of
the <literal>vm1</literal> VM.
</para>
<screen>$ VBoxManage bandwidthctl "vm1" add Limit --type network --limit 20m
$ VBoxManage modifyvm "vm1" --nicbandwidthgroup1 Limit
$ VBoxManage modifyvm "vm1" --nicbandwidthgroup2 Limit</screen>
<para>
You can dynamically modify the limit of a bandwidth group while
the VM is running. The following example shows how to modify the
limit for the <literal>Limit</literal> bandwidth group from 20
Mbps to 100 kbps:
</para>
<screen>$ VBoxManage bandwidthctl "vm1" set Limit --limit 100k</screen>
<para>
The following command disables shaping for all adapters in the
<literal>Limit</literal> bandwidth group by specifying a limit of
zero (<literal>0</literal>):
</para>
<screen>$ VBoxManage bandwidthctl "vm1" set Limit --limit 0</screen>
</refsect1>
</refentry>

View file

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
manpage, user manual, usage: VBoxManage checkmediumpwd
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
<!ENTITY % all.entities SYSTEM "all-entities.ent">
%all.entities;
]>
<refentry id="vboxmanage-checkmediumpwd" lang="en">
<refentryinfo>
<pubdate>$Date: 2023-01-17 15:15:46 +0100 (Tue, 17 Jan 2023) $</pubdate>
<title>VBoxManage checkmediumpwd</title>
</refentryinfo>
<refmeta>
<refentrytitle>VBoxManage-checkmediumpwd</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>VBoxManage-checkmediumpwd</refname>
<refpurpose>check encryption password on a DEK-encrypted medium or a disk image</refpurpose>
<refclass>&product-name;</refclass>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis id="synopsis-vboxmanage-checkmediumpwd">
<!-- The 'id' is mandatory and must start with 'synopsis-'. -->
<command>VBoxManage checkmediumpwd</command>
<group choice="req">
<arg choice="plain"><replaceable>uuid</replaceable></arg>
<arg choice="plain"><replaceable>filename</replaceable></arg>
</group>
<arg choice="req"><replaceable>password-file</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
The <command>VBoxManage checkmediumpwd</command> command checks
the current encryption password on a DEK-encrypted medium or a
disk image. See <xref linkend="diskencryption-encryption" />.
</para>
<para>
The command response indicates if the specified password is
correct.
</para>
<variablelist>
<varlistentry>
<term><replaceable>uuid</replaceable>|<replaceable>filename</replaceable></term>
<listitem><para>
Specifies the Universally Unique Identifier (UUID) or the
absolute path name of the medium or image.
</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>password-file</replaceable></term>
<listitem><para>
Specifies the password to check. The password
can be the absolute path name of a password file
on the host OS or the dash character (<literal>-</literal>)
to prompt you for the password on the command line.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Examples</title>
<remark role="help-scope" condition="GLOBAL" />
<para>
The following example checks the encryption password for the
<filename>ol7u4-1.vdi</filename> disk image. The password
is contained in a file called <filename>pwfile</filename>.
</para>
<para>
The command returns a message indicating that the specified
password is correct.
</para>
<screen>$ VBoxManage checkmediumpwd "$HOME/VirtualBox VMs/ol7u4/ol7u4-1.vdi" /home/user/pwfile
The given password is correct</screen>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<xref linkend="vboxmanage-encryptmedium" />
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,214 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
manpage, user manual, usage: VBoxManage clonemedium
-->
<!--
Copyright (C) 2006-2023 Oracle and/or its affiliates.
This file is part of VirtualBox base platform packages, as
available from https://www.virtualbox.org.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, in version 3 of the
License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses>.
SPDX-License-Identifier: GPL-3.0-only
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
<!ENTITY % all.entities SYSTEM "all-entities.ent">
%all.entities;
]>
<refentry id="vboxmanage-clonemedium" lang="en">
<refentryinfo>
<pubdate>$Date: 2023-01-17 15:15:46 +0100 (Tue, 17 Jan 2023) $</pubdate>
<title>VBoxManage clonemedium</title>
</refentryinfo>
<refmeta>
<refentrytitle>VBoxManage-clonemedium</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>VBoxManage-clonemedium</refname>
<refpurpose>create a clone of a medium</refpurpose>
<refclass>&product-name;</refclass>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis id="synopsis-vboxmanage-clonemedium">
<!-- The 'id' is mandatory and must start with 'synopsis-'. -->
<command>VBoxManage clonemedium</command>
<group choice="req">
<arg choice="plain"><replaceable>uuid</replaceable></arg>
<arg choice="plain"><replaceable>source-medium</replaceable></arg>
</group>
<group choice="req">
<arg choice="plain"><replaceable>uuid</replaceable></arg>
<arg choice="plain"><replaceable>target-medium</replaceable></arg>
</group>
<group>
<arg choice="plain">disk</arg>
<arg choice="plain">dvd</arg>
<arg choice="plain">floppy</arg>
</group>
<arg>--existing</arg>
<arg>--format=<group choice="plain">
<arg choice="plain">VDI</arg>
<arg choice="plain">VMDK</arg>
<arg choice="plain">VHD</arg>
<arg choice="plain">RAW</arg>
<arg choice="plain"><replaceable>other</replaceable></arg>
</group></arg>
<arg>--variant=Standard,Fixed,Split2G,Stream,ESX</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
The <command>VBoxManage clonemedium</command> command enables you
to clone an existing medium (virtual disk, DVD, or floppy), which
is typically an image file. Only the Universally Unique Identifier
(UUID) differs between the original image and the cloned image.
</para>
<para>
You can use the Virtual Media Manager to transfer the cloned image
to another host system or reimport it into &product-name;. See
<xref linkend="virtual-media-manager" /> and <xref linkend="cloningvdis" />.
</para>
<variablelist>
<varlistentry>
<term><replaceable>uuid</replaceable> | <replaceable>source-medium</replaceable></term>
<listitem><para>
Specifies the UUID or the absolute or relative file name of
the source medium to clone. You can specify the UUID of the
medium only if it is registered. Use the <command>VBoxManage
list hdds</command> command to list registered images.
</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>uuid</replaceable> | <replaceable>target-medium</replaceable></term>
<listitem><para>
Specifies the UUID or the absolute or relative file name of
the target (clone) medium. You can specify the UUID of the
target medium only if it is registered. Use the
<command>VBoxManage list hdds</command> command to list
registered images.
</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>disk</literal> | <literal>dvd</literal> | <literal>floppy</literal></term>
<listitem><para>
Specifies the type of the medium to clone. Valid values are
<literal>disk</literal>, <literal>dvd</literal>, and
<literal>floppy</literal>. The default value is
<literal>disk</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--existing</option></term>
<listitem><para>
Performs the clone operation by overwriting an existing
target medium. The result is that only the portion of the
source medium that fits into the existing target medium is
copied.
</para><para>
If the target medium is smaller than the source, only the
portion of the source medium up to the size of the target
medium is copied.
</para><para>
If the target medium is larger than the source, the
remaining part of the target medium is unchanged.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--format</option></term>
<listitem><para>
Specifies the file format of the target medium if it differs
from the format of the source medium. Valid values are
<literal>VDI</literal>, <literal>VMDK</literal>,
<literal>VHD</literal>, <literal>RAW</literal>, and
<replaceable>other</replaceable>.
</para><remark>
What file formats can <replaceable>other</replaceable> be?
</remark></listitem>
</varlistentry>
<varlistentry>
<term><option>--variant=Standard,Fixed,Split2G,Stream,ESX</option></term>
<listitem><para>
Specifies the file format variant for the target medium,
which is a comma-separated list of variants. Following are
the valid values:
</para><itemizedlist>
<listitem><para>
<literal>Standard</literal> is the default disk image
type, which has a dynamically allocated file size.
</para></listitem>
<listitem><para>
<literal>Fixed</literal> uses a disk image that has a
fixed file size.
</para></listitem>
<listitem><para>
<literal>Split2G</literal> indicates that the disk image
is split into 2GB segments. This value is for VMDK only.
</para></listitem>
<listitem><para>
<literal>Stream</literal> optimizes the disk image for
downloading. This value is for VMDK only.
</para></listitem>
<listitem><para>
<literal>ESX</literal> is used for some VMWare products.
This value is for VMDK only.
</para></listitem>
</itemizedlist><para>
Note that not all variant combinations are valid. Specifying
incompatible variant values in the list will produce an
error message.
</para></listitem>
</varlistentry>
</variablelist>
<note>
<para>
For compatibility with earlier versions of &product-name;, you
can use the <command>clonevdi</command> and
<command>clonehd</command> commands instead of the
<command>clonemedium</command> command.
</para>
</note>
</refsect1>
<refsect1>
<title>Examples</title>
<remark role="help-scope" condition="GLOBAL" />
<para>
The following command creates a clone of the
<filename>disk01.vdi</filename> disk image file. The clone is
called <filename>disk02.vdi</filename>.
</para>
<screen>$ VBoxManage clonemedium disk01.vdi disk02.vdi</screen>
<para>
The following command creates a clone of the
<filename>disk01.vdi</filename> disk image file. The clone is in
VMDK format and is called <filename>disk02.vmdk</filename>.
</para>
<screen>$ VBoxManage clonemedium disk01.vdi disk02.vmdk --format VMDK</screen>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<xref linkend="vboxmanage-list" />
</para>
</refsect1>
</refentry>

Some files were not shown because too many files have changed in this diff Show more