]> git.proxmox.com Git - mirror_lxc.git/commitdiff
Merge pull request #2712 from jsoref/spelling
authorChristian Brauner <christian@brauner.io>
Thu, 1 Nov 2018 06:48:09 +0000 (07:48 +0100)
committerGitHub <noreply@github.com>
Thu, 1 Nov 2018 06:48:09 +0000 (07:48 +0100)
Spelling

56 files changed:
CONTRIBUTING
README.md
config/init/common/lxc-containers.in
config/init/upstart/lxc.conf.in
doc/api-extensions.md
doc/api/Doxyfile
doc/examples/lxc-empty-netns.conf.in
doc/ja/lxc-attach.sgml.in
doc/ja/lxc-copy.sgml.in
doc/ja/lxc-usernsexec.sgml.in
doc/ja/lxc.container.conf.sgml.in
doc/ko/lxc-attach.sgml.in
doc/ko/lxc-copy.sgml.in
doc/ko/lxc-usernsexec.sgml.in
doc/ko/lxc.container.conf.sgml.in
doc/ko/lxc.sgml.in
doc/lxc-attach.sgml.in
doc/lxc.container.conf.sgml.in
hooks/dhclient-script
hooks/mountecryptfsroot
src/lxc/attach.c
src/lxc/cgroups/cgfsng.c
src/lxc/cmd/lxc_monitord.c
src/lxc/cmd/lxc_user_nic.c
src/lxc/commands.c
src/lxc/conf.c
src/lxc/conf.h
src/lxc/confile.c
src/lxc/confile_utils.c
src/lxc/criu.c
src/lxc/list.h
src/lxc/log.c
src/lxc/lxc.h
src/lxc/lxccontainer.c
src/lxc/lxccontainer.h
src/lxc/monitor.h
src/lxc/network.c
src/lxc/nl.h
src/lxc/pam/pam_cgfs.c
src/lxc/raw_syscalls.c
src/lxc/start.c
src/lxc/storage/btrfs.c
src/lxc/storage/storage.c
src/lxc/string_utils.h
src/lxc/terminal.h
src/lxc/tools/lxc_autostart.c
src/lxc/tools/lxc_copy.c
src/lxc/tools/lxc_ls.c
src/lxc/tools/lxc_unshare.c
src/lxc/utils.c
src/lxc/utils.h
src/tests/aa.c
src/tests/criu_check_feature.c
src/tests/lxc-test-apparmor-mount
src/tests/shortlived.c
src/tests/startone.c

index 55cad4b4dbdf92ee176961a2ea91ad6e19796970..6a3155db4285f9a189cdb972487cfe060acace50 100644 (file)
@@ -5,7 +5,7 @@ This project accepts contributions. In order to contribute, you should
 pay attention to a few things:
 
     1 - your code must follow the coding style rules
-    2 - the format of the submission must be Github pull requests
+    2 - the format of the submission must be GitHub pull requests
     3 - your work must be signed
 
 
@@ -26,7 +26,7 @@ https://www.kernel.org/doc/html/latest/process/coding-style.html
 Submitting Modifications:
 -------------------------
 
-The contributions must be Github pull requests.
+The contributions must be GitHub pull requests.
 
 Licensing for new files:
 ------------------------
@@ -40,7 +40,7 @@ imported into LXC).
 
 Language bindings for the libraries need to be released under LGPLv2.1+.
 
-Anything else (non-libaries) needs to be Free Software and needs to be
+Anything else (non-libraries) needs to be Free Software and needs to be
 allowed to link with LGPLv2.1+ code (if needed). LXC upstream prefers
 LGPLv2.1+ or GPLv2 for those.
 
index 60f52bbf3d2373e3c0feb7c907992b2d83509588..d225ed7c6ee8578925b3199f46f72bb59fbdac4c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -151,7 +151,7 @@ repo.
 If you want to become more active it is usually also a good idea to show up in
 the LXC IRC channel `#lxc-dev` on `Freenode`. We try to do all development out
 in the open and discussion of new features or bugs is done either in
-appropriate Github issues or on IRC.
+appropriate GitHub issues or on IRC.
 
 When thinking about making security critical contributions or substantial
 changes it is usually a good idea to ping the developers first and ask whether
index bebbbfaf477d0c9a2ffcd46ec65ad0246d80227c..3779d83b307be5ef97f2e5db6dcf8d2bd4d3c3c8 100644 (file)
@@ -97,7 +97,7 @@ case "$1" in
 
         # The stop is serialized and can take excessive time.  We need to avoid
         # delaying the system shutdown / reboot as much as we can since it's not
-        # parallelized...  Even 5 second timout may be too long.
+        # parallelized...  Even 5 second timeout may be too long.
         "$bindir"/lxc-autostart $STOPOPTS $SHUTDOWNDELAY
     ;;
 
index 437db3ce5f1df3b46d5e264c96a3898baba93c3c..3bdfdf718c3137bde5fd87fc960b405afadce361 100644 (file)
@@ -61,7 +61,7 @@ end script
 
 # The stop is serialized and can take excessive time.  We need to avoid
 # delaying the system shutdown / reboot as much as we can since it's not
-# parallelized...  Even 5 second timout may be too long.
+# parallelized...  Even 5 second timeout may be too long.
 post-stop script
        [ -f /etc/default/lxc ] && . /etc/default/lxc
 
index f071237e06bde2210546db37e28ac739b8d56b46..ae9cced1cbbfdca5cac570568135eaa0259ab7c6 100644 (file)
@@ -25,7 +25,7 @@ an efficient ringbuffer.
 This adds `reboot2()` as a new API extension. This function properly waits
 until a reboot succeeded. It takes a timeout argument. When set to `> 0`
 `reboot2()` will block until the timeout is reached, if timeout is set to zero
-`reboot2()` will not block, if set to -1 `reboot2()` will block indefinitly.
+`reboot2()` will not block, if set to -1 `reboot2()` will block indefinitely.
 
 ## mount\_injection
 
index 59180f817e1f1b1ac9dca6eb22a5beef681078c8..19ad4cd9233a49e4abb3bc532d6d19578968a78e 100644 (file)
@@ -258,7 +258,7 @@ OPTIMIZE_OUTPUT_VHDL   = NO
 # parses. With this tag you can assign which parser to use for a given
 # extension. Doxygen has a built-in mapping, but you can override or extend it
 # using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
 # C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make
 # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
 # (default is Fortran), use: inc=Fortran f=C.
@@ -1392,7 +1392,7 @@ FORMULA_FONTSIZE       = 10
 FORMULA_TRANSPARENT    = YES
 
 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
+# http://www.mathjax.org) which uses client side JavaScript for the rendering
 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
 # installed or if you want to formulas look prettier in the HTML output. When
 # enabled you may also need to install MathJax separately and configure the path
@@ -1462,7 +1462,7 @@ MATHJAX_CODEFILE       =
 SEARCHENGINE           = YES
 
 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a web server instead of a web client using Javascript. There
+# implemented using a web server instead of a web client using JavaScript. There
 # are two flavours of web server based searching depending on the
 # EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
 # searching and an index file used by the script. When EXTERNAL_SEARCH is
index f28dff5d595e1b3f0856ead050dd4470b12eb5fc..4564cbd0c5154b3e13b2e6038b2de757c8a4ca4e 100644 (file)
@@ -1,4 +1,4 @@
-# Container with new network withtout network devices
+# Container with new network without network devices
 lxc.uts.name = omega
 lxc.net.0.type = empty
 lxc.net.0.flags = up
index fe2e40b23a50b3f14d5d94bcdb7c2c85a45d4449..fa643c75e4423570cedb025b94e58d4058964055 100644 (file)
@@ -162,7 +162,7 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
            <citerefentry>
              <refentrytitle><filename>lxc.conf</filename></refentrytitle>
              <manvolnum>5</manvolnum>
-           </citerefentry>. By default, the current archictecture of the
+           </citerefentry>. By default, the current architecture of the
            running container will be used.
             -->
             コマンドを実行するコンテナのアーキテクチャを指定します。
index 69bc9f4c1bec0740e838347e40f020981b6ba93c..7a26842ea5ca7e9d26c3d4413c9f29a948eaa544 100644 (file)
@@ -308,7 +308,7 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
             <para><!-- Specify the backing storage type to be used for the copy
             where 'backingstorage' is of type 'btrfs', 'dir', 'lvm', 'loop',
             'overlay', or 'zfs'. -->
-             コピー先コンテナのバッキングストレージのタイプを指定します。ここで 'backingsotrage' は 'btrfs'、'dir'、'lvm'、'loop'、'overlay'、'zfs' のどれかです。
+             コピー先コンテナのバッキングストレージのタイプを指定します。ここで 'backingstorage' は 'btrfs'、'dir'、'lvm'、'loop'、'overlay'、'zfs' のどれかです。
            </para>
           </listitem>
          </varlistentry>
index 4125ad393e8279960f147afc540f26670fd5347d..88c9530b15fb44a90055d5dcd6ba7b9c2836a381 100644 (file)
@@ -88,7 +88,7 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
             <!--
          The uid map to use in the user namespace.  Each map consists of
          four colon-separate values.  First a character 'u', 'g' or 'b' to
-         specify whether this map perttains to user ids, group ids, or
+         specify whether this map pertains to user ids, group ids, or
          both; next the first userid in the user namespace;  next the
          first userid as seen on the host;  and finally the number of
          ids to be mapped.
index e35005c69c85c46de7ca8a4fbcf27f09e0ecef79..47ef1c6ef26a0e8a36285c168ffd77ece7e85943 100644 (file)
@@ -1890,7 +1890,7 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
       <variablelist>
         <varlistentry>
           <term>
-            <option>lxc.cgroup.[controll name]</option>
+            <option>lxc.cgroup.[control name]</option>
           </term>
           <listitem>
             <para>
@@ -1916,7 +1916,7 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
             <para>
               <!--
               Specify the control group value to be set on the unified cgroup
-              shierarchy. The controller name is the literal name of the control
+              hierarchy. The controller name is the literal name of the control
               group. The permitted names and the syntax of their values is not
               dictated by LXC, instead it depends on the features of the Linux
               kernel running at the time the container is started, eg.
@@ -2272,7 +2272,7 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
         container should be run can be specified in the container
         configuration.  The default is <command>lxc-container-default-cgns</command>
         if the host kernel is cgroup namespace aware, or
-        <command>lxc-container-default</command> othewise.
+        <command>lxc-container-default</command> otherwise.
         -->
         lxc が apparmor サポートでコンパイルされ、インストールされている場合で、ホストで apparmor が有効な場合、コンテナが従って動くべき apparmor プロファイルは、コンテナの設定で指定することが可能です。
         デフォルトは、ホストのカーネルで cgroup 名前空間が使える場合は <command>lxc-container-default-cgns</command>です。使えない場合は <command>lxc-container-default</command> です。
@@ -2388,7 +2388,7 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
         Versions 1 and 2 are currently supported.  In version 1, the
         policy is a simple whitelist.  The second line therefore must
         read "whitelist", with the rest of the file containing one (numeric)
-        sycall number per line.  Each syscall number is whitelisted,
+        syscall number per line.  Each syscall number is whitelisted,
         while every unlisted number is blacklisted for use in the container
         -->
         現時点では、バージョン番号は 1 と 2 をサポートしています。バージョン 1 では、ポリシーはシンプルなホワイトリストですので、2 行目は "whitelist" でなければなりません。
index 9b94b9299caef368fb9c9839b4d15216cd6f095e..9886c2e059d375bac1c8241c2bb3d86e9dd4a47c 100644 (file)
@@ -163,7 +163,7 @@ by Sungbae Yoo <sungbae.yoo at samsung.com>
            <citerefentry>
              <refentrytitle><filename>lxc.conf</filename></refentrytitle>
              <manvolnum>5</manvolnum>
-           </citerefentry>. By default, the current archictecture of the
+           </citerefentry>. By default, the current architecture of the
            running container will be used.
            -->
            명령어를 실행하는 컨테이너의 아키텍처를 지정한다.
index 712550d9b148b61892b7cc3cd793fe38c13aa036..c0f357a799913b8ea99cf8bf73f781b4f6c0fa3a 100644 (file)
@@ -137,7 +137,7 @@ by Sungbae Yoo <sungbae.yoo at samsung.com>
     container. aufs or overlayfs snapshots of directory backed containers are
     exempted from this rule.
     -->
-    복사본의 저장소는 원본 컨테이너와 같은 종류가 된다. 단, aufs나 디렉토리로 구성된 컨테이너의 overayfs 스냅샷은 예외이다.
+    복사본의 저장소는 원본 컨테이너와 같은 종류가 된다. 단, aufs나 디렉토리로 구성된 컨테이너의 overlayfs 스냅샷은 예외이다.
     </para>
 
     <para>
index 9568f14e9ec968b4f8bfbd883ab0b1782b5fdb7b..72b75506fede1da5e1971471c22f4bfde86b71da 100644 (file)
@@ -88,7 +88,7 @@ by Sungbae Yoo <sungbae.yoo at samsung.com>
             <!--
          The uid map to use in the user namespace.  Each map consists of
          four colon-separate values.  First a character 'u', 'g' or 'b' to
-         specify whether this map perttains to user ids, group ids, or
+         specify whether this map pertains to user ids, group ids, or
          both; next the first userid in the user namespace;  next the
          first userid as seen on the host;  and finally the number of
          ids to be mapped.
index e880525a6bb13c369f970733188e2ca80a587364..b72c88122af2838b6833debb08c3480d59039b17 100644 (file)
@@ -348,7 +348,7 @@ by Sungbae Yoo <sungbae.yoo at samsung.com>
           <listitem>
             <para>
               <!--
-              UID to use within a private user namesapce for init.
+              UID to use within a private user namespace for init.
                 -->
               init이 사용자 네임스페이스 안에서 사용할 UID.
             </para>
@@ -361,7 +361,7 @@ by Sungbae Yoo <sungbae.yoo at samsung.com>
           <listitem>
             <para>
               <!--
-              GID to use within a private user namesapce for init.
+              GID to use within a private user namespace for init.
                 -->
               init이 사용자 네임스페이스 안에서 사용할 GID.
             </para>
@@ -1623,7 +1623,7 @@ proc proc proc nodev,noexec,nosuid 0 0
        container should be run can be specified in the container
         configuration.  The default is <command>lxc-container-default-cgns</command>
        if the host kernel is cgroup namespace aware, or
-       <command>lxc-container-default</command> othewise.
+       <command>lxc-container-default</command> otherwise.
         -->
         lxc가 apparmor를 지원하도록 컴파일된 후 설치되었고, 호스트 시스템에서 apparmor가 활성화되었다면, 컨테이너에서 따라야할 apparmor 프로파일을 컨테이너 설정에서 지정할 수 있다. 기본값은 호스트 커널이 cgroup 네임스페이스를 지원하면 <command>lxc-container-default-cgns</command>이고, 그렇지 않다면 <command>lxc-container-default</command>이다.
       </para>
@@ -1738,7 +1738,7 @@ proc proc proc nodev,noexec,nosuid 0 0
         Versions 1 and 2 are currently supported.  In version 1, the
        policy is a simple whitelist.  The second line therefore must
        read "whitelist", with the rest of the file containing one (numeric)
-       sycall number per line.  Each syscall number is whitelisted,
+       syscall number per line.  Each syscall number is whitelisted,
        while every unlisted number is blacklisted for use in the container
         -->
         현재는 버전1과 2만 지원된다. 버전 1에서는 정책은 단순한 화이트리스트이다. 그러므로 두번째 라인은 반드시 "whitelist"여야 한다. 파일의 나머지 내용은 한 줄에 하나의 시스템콜 번호로 채워진다. 화이트리스트에 없는 번호는 컨테이너에서 블랙리스트로 들어간다.
index dcfd970c03ce1afd56cef5f76bf3a24c471c6d56..dbfafa141ab33609888d5093ef50bec47968b535 100644 (file)
@@ -107,7 +107,7 @@ by Sungbae Yoo <sungbae.yoo at samsung.com>
       manage a container with simple command lines and complete enough
       to be used for other purposes.
       -->
-      이 프로젝트의 첫번째 목적은 컨테이너 프로젝트에 속해있는 커널 개발자들의 작업을 편하게 하며, 특히 새로운 기능인 Checkpoing/Restart에 대해 계속 작업을 진행해 나가는 것이다.
+      이 프로젝트의 첫번째 목적은 컨테이너 프로젝트에 속해있는 커널 개발자들의 작업을 편하게 하며, 특히 새로운 기능인 Checkpoint/Restart에 대해 계속 작업을 진행해 나가는 것이다.
       <command>lxc</command>는 작지만, 컨테이너를 간단한 명령어를 통해 쉽게 관리할 수 있고, 다목적으로 사용되기에도 충분하다.
     </para>
   </refsect1>
index e0c1be7462e1990dd9ee8ff951ee2003ec84a5f0..41955fcaddfc81ddb380160846734032736cbd7d 100644 (file)
@@ -136,7 +136,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
            <citerefentry>
              <refentrytitle><filename>lxc.conf</filename></refentrytitle>
              <manvolnum>5</manvolnum>
-           </citerefentry>. By default, the current archictecture of the
+           </citerefentry>. By default, the current architecture of the
            running container will be used.
          </para>
        </listitem>
index d217e53d9c83fb1670a0ffd129c0f64cd4976ad3..3db43fa9ab87e9173ecbfac4e10976aeff607f21 100644 (file)
@@ -1443,7 +1443,7 @@ dev/null proc/kcore none bind,relative 0 0
           <listitem>
             <para>
               Specify the control group value to be set on the unified cgroup
-              shierarchy. The controller name is the literal name of the control
+              hierarchy. The controller name is the literal name of the control
               group. The permitted names and the syntax of their values is not
               dictated by LXC, instead it depends on the features of the Linux
               kernel running at the time the container is started, eg.
@@ -1705,7 +1705,7 @@ dev/null proc/kcore none bind,relative 0 0
         container should be run can be specified in the container
         configuration.  The default is <command>lxc-container-default-cgns</command>
        if the host kernel is cgroup namespace aware, or
-       <command>lxc-container-default</command> othewise.
+       <command>lxc-container-default</command> otherwise.
       </para>
       <variablelist>
         <varlistentry>
@@ -1790,7 +1790,7 @@ dev/null proc/kcore none bind,relative 0 0
         Versions 1 and 2 are currently supported.  In version 1, the
         policy is a simple whitelist.  The second line therefore must
         read "whitelist", with the rest of the file containing one (numeric)
-        sycall number per line.  Each syscall number is whitelisted,
+        syscall number per line.  Each syscall number is whitelisted,
         while every unlisted number is blacklisted for use in the container
       </para>
 
index 171117fd28e0a02f4dfd2afeb0029b05ed638375..9b4c0f0ffd4d7ccac580031110d600ba6df8417f 100644 (file)
@@ -32,7 +32,7 @@
 # Resolve every paths against the $ROOTFS environment variable.
 
 # 'ip' just looks too weird. Also, we now have unit-tests! Those unit-tests
-# overwirte this line to use a fake ip-echo tool. It's also convenient
+# override this line to use a fake ip-echo tool. It's also convenient
 # if your system holds ip tool in a non-standard location.
 ip=/sbin/ip
 
index 15bb2ea170ee272c6cf769e8041750c2aa996776..cb5a66b140596745d458c697842a1ba1f0558ae3 100755 (executable)
@@ -39,7 +39,7 @@
 #     container as normal.
 #     a. echo none | ecryptfs-add-passphrase
 #     b. lxc-start -n q1
-#  Note that you may well want to use a wrapped passhrase (see the ecryptfs-wrap-passphrase(1) manual page).
+#  Note that you may well want to use a wrapped passphrase (see the ecryptfs-wrap-passphrase(1) manual page).
 
 set -e
 ecryptfs_crypt=$(echo $LXC_ROOTFS_PATH | sed 's/rootfs$/rootfs.crypt/')
index 9464d882e3aaa5b508d41f9038836e346ceb9d50..117e3778fab182de29b24cf7c5754a149d973649 100644 (file)
@@ -1219,7 +1219,7 @@ int lxc_attach(const char *name, const char *lxcpath,
         * just fork()s away without exec'ing directly after, the socket fd will
         * exist in the forked process from the other thread and any close() in
         * our own child process will not really cause the socket to close
-        * properly, potentiall causing the parent to hang.
+        * properly, potentially causing the parent to hang.
         *
         * For this reason, while IPC is still active, we have to use shutdown()
         * if the child exits prematurely in order to signal that the socket is
index 43403ce429c3bd46e98640e61623e3a5407db52c..7474ba140f745a2ac3fdb41623e2e5f7982e2983 100644 (file)
@@ -31,7 +31,7 @@
  *
  * This new implementation assumes that cgroup filesystems are mounted
  * under /sys/fs/cgroup/clist where clist is either the controller, or
- * a comman-separated list of controllers.
+ * a comma-separated list of controllers.
  */
 
 #ifndef _GNU_SOURCE
@@ -1689,7 +1689,7 @@ static bool cg_mount_needs_subdirs(int type)
 
 /* After $rootfs/sys/fs/container/controller/the/cg/path has been created,
  * remount controller ro if needed and bindmount the cgroupfs onto
- * controll/the/cg/path.
+ * control/the/cg/path.
  */
 static int cg_legacy_mount_controllers(int type, struct hierarchy *h,
                                       char *controllerpath, char *cgpath,
index f8312998b93f3edfa5cf29d78670e271207ad494..3b931b36109bf38f6d7a72892fed723c6a9b42ec 100644 (file)
@@ -458,7 +458,7 @@ int main(int argc, char *argv[])
                }
 
                if (quit == LXC_MAINLOOP_CLOSE) {
-                       NOTICE("Got quit command. lxc-monitord is exitting");
+                       NOTICE("Got quit command. lxc-monitord is exiting");
                        break;
                }
        }
index 02915b882fc5efcdcedeeca57275a7b501bba561..0ff41849741adfcd2819de5ea21c3133ac19bfa0 100644 (file)
@@ -1319,7 +1319,7 @@ int main(int argc, char *argv[])
                _exit(EXIT_FAILURE);
        }
 
-       /* Write names of veth pairs and their ifindeces to stout:
+       /* Write names of veth pairs and their ifindices to stout:
         * (e.g. eth0:731:veth9MT2L4:730)
         */
        fprintf(stdout, "%s:%d:%s:%d\n", newname, container_veth_ifidx, nicname,
index 1d3c2eaef8e99be7d206e14d1fde41c3c2edef14..133384d723fe1e4bdc8fa5c1c13632b93a87c793 100644 (file)
@@ -348,7 +348,7 @@ int lxc_try_cmd(const char *name, const char *lxcpath)
        return 0;
 }
 
-/* Implentations of the commands and their callbacks */
+/* Implementations of the commands and their callbacks */
 
 /*
  * lxc_cmd_get_init_pid: Get pid of the container's init process
index 7307770a893ada3d7291128a04ad41d9d0743eac..fbf569b0f7a3448ea27b4cfafde7824f89cfe7a5 100644 (file)
@@ -1397,14 +1397,14 @@ int lxc_chroot(const struct lxc_rootfs *rootfs)
                return -1;
        }
 
-       /* The following code cleans up inhereted mounts which are not required
+       /* The following code cleans up inherited mounts which are not required
         * for CT.
         *
         * The mountinfo file shows not all mounts, if a few points have been
         * unmounted between read operations from the mountinfo. So we need to
         * read mountinfo a few times.
         *
-        * This loop can be skipped if a container uses unserns, because all
+        * This loop can be skipped if a container uses userns, because all
         * inherited mounts are locked and we should live with all this trash.
         */
        for (;;) {
@@ -1447,7 +1447,7 @@ int lxc_chroot(const struct lxc_rootfs *rootfs)
                        break;
        }
 
-       /* This also can be skipped if a container uses unserns. */
+       /* This also can be skipped if a container uses userns. */
        (void)umount2("./proc", MNT_DETACH);
 
        /* It is weird, but chdir("..") moves us in a new root */
@@ -2916,7 +2916,7 @@ static int idmaptool_on_path_and_privileged(const char *binary, cap_value_t cap)
         * of the doubt. Otherwise we might fail even though all the necessary
         * file capabilities are set.
         */
-       DEBUG("Cannot check for file capabilites as full capability support is "
+       DEBUG("Cannot check for file capabilities as full capability support is "
              "missing. Manual intervention needed");
        fret = 1;
 #endif
@@ -3040,7 +3040,7 @@ int lxc_map_ids(struct lxc_list *idmap, pid_t pid)
                if (!had_entry)
                        continue;
 
-               /* Try to catch the ouput of new{g,u}idmap to make debugging
+               /* Try to catch the output of new{g,u}idmap to make debugging
                 * easier.
                 */
                if (use_shadow) {
@@ -4359,8 +4359,8 @@ on_error:
  * This means we require only to establish a mapping from:
  * - the container root {g,u}id as seen from the host > user's host {g,u}id
  * - the container root -> some sub{g,u}id
- * The former we add, if the user did not specifiy a mapping. The latter we
- * retrieve from the ontainer's configured {g,u}id mappings as it must have been
+ * The former we add, if the user did not specify a mapping. The latter we
+ * retrieve from the container's configured {g,u}id mappings as it must have been
  * there to start the container in the first place.
  */
 int userns_exec_1(struct lxc_conf *conf, int (*fn)(void *), void *data,
index befadc8cd96385e266af8f1f5cc0a1edb66e6bfe..f40807e9a31612f255501a71eff0d6773212e92d 100644 (file)
@@ -160,7 +160,7 @@ struct lxc_tty_info {
  * @bev_type   : optional backing store type
  * @options    : mount options
  * @mountflags : the portion of @options that are flags
- * @data       : the porition of @options that are not flags
+ * @data       : the portion of @options that are not flags
  * @managed    : whether it is managed by LXC
  */
 struct lxc_rootfs {
@@ -306,13 +306,13 @@ struct lxc_conf {
        int stopsignal; /* signal used to hard stop container */
        char *rcfile;   /* Copy of the top level rcfile we read */
 
-       /* Logfile and logleve can be set in a container config file. Those
-        * function as defaults. The defaults can be overriden by command line.
+       /* Logfile and loglevel can be set in a container config file. Those
+        * function as defaults. The defaults can be overridden by command line.
         * However we don't want the command line specified values to be saved
         * on c->save_config(). So we store the config file specified values
         * here. */
-       char *logfile; /* the logfile as specifed in config */
-       int loglevel; /* loglevel as specifed in config (if any) */
+       char *logfile; /* the logfile as specified in config */
+       int loglevel; /* loglevel as specified in config (if any) */
        int logfd;
 
        unsigned int start_auto;
index e1f4266b6c93ac5d066807b20b07a22953ee9926..5ecbaeac2f0f119f02f9af0d595e513864700871 100644 (file)
@@ -3186,7 +3186,7 @@ static int get_config_selinux_context(const char *key, char *retv, int inlen,
 /* If you ask for a specific cgroup value, i.e. lxc.cgroup.devices.list, then
  * just the value(s) will be printed. Since there still could be more than one,
  * it is newline-separated.
- * (Maybe that's ambigous, since some values, i.e. devices.list, will already
+ * (Maybe that's ambiguous, since some values, i.e. devices.list, will already
  * have newlines?)
  * If you ask for 'lxc.cgroup", then all cgroup entries will be printed, in
  * 'lxc.cgroup.subsystem.key = value' format.
@@ -4434,7 +4434,7 @@ static struct lxc_config_t *get_network_config_ops(const char *key,
        ret = lxc_safe_uint((idx_start + 1), &tmpidx);
        if (ret < 0) {
                errno = -ret;
-               SYSERROR("Failed to parse usigned integer from string \"%s\"",
+               SYSERROR("Failed to parse unsigned integer from string \"%s\"",
                         idx_start + 1);
                *idx = ret;
                goto on_error;
index 36341fb73c1dee171769d5850b256a4ee699de16..04926854d1134c11168e8dab2a2f694e030c17fb 100644 (file)
@@ -542,7 +542,7 @@ int network_ifname(char *valuep, const char *value, size_t size)
 
        retlen = strlcpy(valuep, value, size);
        if (retlen >= size)
-               ERROR("Network devie name \"%s\" is too long (>= %zu)", value,
+               ERROR("Network device name \"%s\" is too long (>= %zu)", value,
                      size);
 
        return 0;
index 60cdb17e8156a93ceea344a4f463bc29aa8be3f5..3d857b541961325681104e438dd73fdb1c80da3b 100644 (file)
@@ -106,7 +106,7 @@ static int load_tty_major_minor(char *directory, char *output, int len)
 
        ret = snprintf(path, sizeof(path), "%s/tty.info", directory);
        if (ret < 0 || ret >= sizeof(path)) {
-               ERROR("snprintf'd too many chacters: %d", ret);
+               ERROR("snprintf'd too many characters: %d", ret);
                return -1;
        }
 
@@ -952,7 +952,7 @@ static void do_restore(struct lxc_container *c, int status_pipe, struct migrate_
        struct cgroup_ops *cgroup_ops;
 
        /* Try to detach from the current controlling tty if it exists.
-        * Othwerise, lxc_init (via lxc_console) will attach the container's
+        * Otherwise, lxc_init (via lxc_console) will attach the container's
         * console output to the current tty, which is probably not what any
         * library user wants, and if they do, they can just manually configure
         * it :)
@@ -1201,7 +1201,7 @@ static int save_tty_major_minor(char *directory, struct lxc_container *c, char *
 
        ret = snprintf(path, sizeof(path), "/proc/%d/root/dev/console", c->init_pid(c));
        if (ret < 0 || ret >= sizeof(path)) {
-               ERROR("snprintf'd too many chacters: %d", ret);
+               ERROR("snprintf'd too many characters: %d", ret);
                return -1;
        }
 
index e3d409f2f4ff5fc6e7d2dd0400b37ac807e4540d..2ab9e1f047f94521b9ed8b4786122b5290f5c5bb 100644 (file)
@@ -63,7 +63,7 @@ struct lxc_list {
        for (__iterator = (__list)->next, __next = __iterator->next;           \
             __iterator != __list; __iterator = __next, __next = __next->next)
 
-/* Initalize list. */
+/* Initialize list. */
 static inline void lxc_list_init(struct lxc_list *list)
 {
        list->elem = NULL;
index 203accc31a9edc4e1668778386337a7cc30c4bee..2f1a9385e17f5d18dd546ee0bb9e01e6547f0a02 100644 (file)
@@ -258,13 +258,13 @@ static int lxc_unix_epoch_to_utc(char *buf, size_t bufsize, const struct timespe
        /* Transform hours to seconds. */
        h_in_s = hours * 3600;
 
-       /* Calculate minutes by substracting the seconds for all days in the
+       /* Calculate minutes by subtracting the seconds for all days in the
         * epoch and for all hours in the epoch and divide by the number of
         * minutes in an hour.
         */
        minutes = (time->tv_sec - d_in_s - h_in_s) / 60;
 
-       /* Calculate the seconds by substracting the seconds for all days in the
+       /* Calculate the seconds by subtracting the seconds for all days in the
         * epoch, hours in the epoch and minutes in the epoch.
         */
        seconds = (time->tv_sec - d_in_s - h_in_s - (minutes * 60));
@@ -296,7 +296,7 @@ static int lxc_unix_epoch_to_utc(char *buf, size_t bufsize, const struct timespe
  * think you are, you __will__ cause trouble using them.
  * (As a short example how this can cause trouble: LXD uses forkstart to fork
  * off a new process that runs the container. At the same time the go runtime
- * LXD relies on does its own multi-threading thing which we can't controll. The
+ * LXD relies on does its own multi-threading thing which we can't control. The
  * fork()ing + threading then seems to mess with the locking states in these
  * time functions causing deadlocks.)
  * The current solution is to be good old unix people and use the Epoch as our
@@ -640,7 +640,7 @@ static int _lxc_log_set_file(const char *name, const char *lxcpath, int create_d
 /*
  * lxc_log_init:
  * Called from lxc front-end programs (like lxc-create, lxc-start) to
- * initalize the log defaults.
+ * initialize the log defaults.
  */
 int lxc_log_init(struct lxc_log *log)
 {
index 97bf7a5e5a0a92c134b28aaaeb40ee288600e7bc..725ec189b9a517091df59c92b3bf93497a2850b5 100644 (file)
@@ -48,7 +48,7 @@ struct lxc_handler;
 /*
  * Start the specified command inside a system container
  * @name         : the name of the container
- * @argv         : an array of char * corresponding to the commande line
+ * @argv         : an array of char * corresponding to the command line
  * @conf         : configuration
  * @daemonize    : whether or not the container is daemonized
  * Returns 0 on success, < 0 otherwise
@@ -60,7 +60,7 @@ extern int lxc_start(const char *name, char *const argv[],
 /*
  * Start the specified command inside an application container
  * @name         : the name of the container
- * @argv         : an array of char * corresponding to the commande line
+ * @argv         : an array of char * corresponding to the command line
  * @quiet        : if != 0 then lxc-init won't produce any output
  * @conf         : configuration
  * @daemonize    : whether or not the container is daemonized
index 8c26769b45b71521cdf0f27c860013e3589aa241..6c35ab6532c207fa171805145123c9a9f14c468d 100644 (file)
@@ -2254,7 +2254,7 @@ static bool add_to_array(char ***names, char *cname, int pos)
        if (!newnames[pos])
                return false;
 
-       /* Sort the arrray as we will use binary search on it. */
+       /* Sort the array as we will use binary search on it. */
        qsort(newnames, pos + 1, sizeof(char *),
              (int (*)(const void *, const void *))string_cmp);
 
@@ -2273,7 +2273,7 @@ static bool add_to_clist(struct lxc_container ***list, struct lxc_container *c,
        *list = newlist;
        newlist[pos] = c;
 
-       /* Sort the arrray as we will use binary search on it. */
+       /* Sort the array as we will use binary search on it. */
        if (sort)
                qsort(newlist, pos + 1, sizeof(struct lxc_container *),
                      (int (*)(const void *, const void *))container_cmp);
index cb0cf8d2d4f246308ed21923bf507d8dedeb2be5..8e38928c3aa3a9e55c66345c85973a93115772df 100644 (file)
@@ -299,7 +299,7 @@ struct lxc_container {
        bool (*destroy)(struct lxc_container *c);
 
        /*!
-        * \brief Save configuaration to a file.
+        * \brief Save configuration to a file.
         *
         * \param c Container.
         * \param alt_file Full path to file to save configuration in.
@@ -824,7 +824,7 @@ struct lxc_container {
        /*!
         * \brief An API call to perform various migration operations
         *
-        * \param cmd One of the MIGRATE_ contstants.
+        * \param cmd One of the MIGRATE_ constants.
         * \param opts A migrate_opts struct filled with relevant options.
         * \param size The size of the migrate_opts struct, i.e. sizeof(struct migrate_opts).
         *
index d13a612526c29a1c021556b33ce1ab69bfc2fd06..4668608af1abd8b893838b2c69793a266bb50839 100644 (file)
@@ -78,7 +78,7 @@ extern int lxc_monitor_read_timeout(int fd, struct lxc_msg *msg, int timeout);
 /*
  * Blocking read from multiple monitors for the next container state
  * change with timeout
- * @fds     : struct pollfd descripting the fds to use
+ * @fds     : struct pollfd describing the fds to use
  * @nfds    : the number of entries in fds
  * @msg     : the variable which will be filled with the state
  * @timeout : the timeout in seconds to wait for a state change
index d7cc0f6d047d6b5159baf9a2e3a319c5a70a17fe..d0f14e632321d805750a6ebca67afc2cb18a5270 100644 (file)
@@ -2421,7 +2421,7 @@ bool lxc_delete_network_unpriv(struct lxc_handler *handler)
                     netdev->link);
 
 clear_ifindices:
-               /* We need to clear any ifindeces we recorded so liblxc won't
+               /* We need to clear any ifindices we recorded so liblxc won't
                 * have cached stale data which would cause it to fail on reboot
                 * we're we don't re-read the on-disk config file.
                 */
@@ -2632,7 +2632,7 @@ bool lxc_delete_network_priv(struct lxc_handler *handler)
                             hostveth, netdev->link);
 
 clear_ifindices:
-               /* We need to clear any ifindeces we recorded so liblxc won't
+               /* We need to clear any ifindices we recorded so liblxc won't
                 * have cached stale data which would cause it to fail on reboot
                 * we're we don't re-read the on-disk config file.
                 */
@@ -3131,7 +3131,7 @@ int lxc_network_send_name_and_ifindex_to_parent(struct lxc_handler *handler)
                        return -1;
        }
 
-       TRACE("Sent network device names and ifindeces to parent");
+       TRACE("Sent network device names and ifindices to parent");
        return 0;
 }
 
index 2afda5f0f0761eed658cb6dc576c0703e0cb9c9f..e6bf0d74361a9c462b6d50e11bba8c2e5bb4bd8c 100644 (file)
@@ -126,9 +126,9 @@ int __netlink_send(struct nl_handler *handler, struct nlmsghdr *nlmsg);
  * Returns 0 on success, < 0 otherwise
  */
 int netlink_transaction(struct nl_handler *handler,
-                       struct nlmsg *request, struct nlmsg *anwser);
+                       struct nlmsg *request, struct nlmsg *answer);
 int __netlink_transaction(struct nl_handler *handler, struct nlmsghdr *request,
-                         struct nlmsghdr *anwser);
+                         struct nlmsghdr *answer);
 
 /*
  * nla_put_string: copy a null terminated string to a netlink message
index 4b2aa567e3595b0d6204f384d26108610c9dd673..855a40f87ff2070379bf75f7828a5b080fdb4011 100644 (file)
@@ -1281,7 +1281,7 @@ static inline int cg_get_version_of_mntpt(const char *path)
 }
 
 /* Detect and store information about the cgroupfs v2 hierarchy. Currently only
- * deals with the empty v2 hierachy as we do not retrieve enabled controllers.
+ * deals with the empty v2 hierarchy as we do not retrieve enabled controllers.
  */
 static bool cgv2_init(uid_t uid, gid_t gid)
 {
index e5e8235409545452f2ce995fda10b48479905394..4ac51ac253eb63ddd0240b00497c3802c66a95da 100644 (file)
@@ -35,7 +35,7 @@ int lxc_raw_execveat(int dirfd, const char *pathname, char *const argv[],
 pid_t lxc_raw_clone(unsigned long flags)
 {
        /*
-        * These flags don't interest at all so we don't jump through any hoopes
+        * These flags don't interest at all so we don't jump through any hoops
         * of retrieving them and passing them to the kernel.
         */
        errno = EINVAL;
index 405a88a786bfc5eb67ae484b7f83fcc9fb32a9ab..da942a6e8358a42a4cae2a3acb21500394a6fc54 100644 (file)
@@ -1540,7 +1540,7 @@ int resolve_clone_flags(struct lxc_handler *handler)
  * getpid() in the child would return the parent's pid. This is all fixed in
  * newer glibc versions where the getpid() cache is removed and the pid/tid is
  * not reset anymore.
- * However, if for whatever reason you - dear commiter - somehow need to get the
+ * However, if for whatever reason you - dear committer - somehow need to get the
  * pid of the dummy intermediate process for do_share_ns() you need to call
  * lxc_raw_getpid(). The next lxc_raw_clone() call does not employ CLONE_VM and
  * will be fine.
@@ -1950,7 +1950,7 @@ static int lxc_spawn(struct lxc_handler *handler)
        }
 
        /* Now all networks are created, network devices are moved into place,
-        * and the correct names and ifindeces in the respective namespaces have
+        * and the correct names and ifindices in the respective namespaces have
         * been recorded. The corresponding structs have now all been filled. So
         * log them for debugging purposes.
         */
index b850611dcb053850b05c95fa320a741b3e6347ec..bbfce61b9fef5d1a12a4acc8ca9a30f4ba0ef91b 100644 (file)
@@ -831,7 +831,7 @@ static int btrfs_recursive_destroy(const char *path)
 
                        /*
                         * A backref key with the name and dirid of the parent
-                        * comes followed by the reoot ref key which has the
+                        * comes followed by the root ref key which has the
                         * name of the child subvol in question.
                         */
                        if (sh.objectid != root_id && sh.type == BTRFS_ROOT_BACKREF_KEY) {
index 0a93a4d34b39a111eb1975e1af74b129933e0314..c4f4c2ea3024c6c0d1e5528be2845c35445180a9 100644 (file)
@@ -314,7 +314,7 @@ bool storage_can_backup(struct lxc_conf *conf)
        return ret;
 }
 
-/* If we're not snaphotting, then storage_copy becomes a simple case of mount
+/* If we're not snapshotting, then storage_copy becomes a simple case of mount
  * the original, mount the new, and rsync the contents.
  */
 struct lxc_storage *storage_copy(struct lxc_container *c, const char *cname,
index d289d18e0c38b8b985f9905d4c79b05545f1b6c3..4065e4e6b1b3c036058b3770703f7b6744f26449 100644 (file)
@@ -101,7 +101,7 @@ __attribute__((sentinel)) extern char *must_append_path(char *first, ...);
 /* Return copy of string @entry. Do not fail. */
 extern char *must_copy_string(const char *entry);
 
-/* Re-alllocate a pointer, do not fail */
+/* Re-allocate a pointer, do not fail */
 extern void *must_realloc(void *orig, size_t sz);
 
 extern int lxc_char_left_gc(const char *buffer, size_t len);
index ef09d50d295d5048a257154ad20e2570562262a9..bfd271f446b9f6a04de79cb4fa5ccce35d51a580 100644 (file)
@@ -250,7 +250,7 @@ extern void lxc_terminal_winsz(int srcfd, int dstfd);
  * Must be called with process_lock held to protect the lxc_ttys list, or from
  * a non-threaded context.
  *
- * Note that the signal handler isn't installed as a classic asychronous
+ * Note that the signal handler isn't installed as a classic asynchronous
  * handler, rather signalfd(2) is used so that we can handle the signal when
  * we're ready for it. This avoids deadlocks since a signal handler (ie
  * lxc_terminal_sigwinch()) would need to take the thread mutex to prevent
index 1209897ec81ba99b882c43efc1f0a2864867e20e..d6f3cb126ed982995d76fe811be3a275c078116f 100644 (file)
@@ -417,7 +417,7 @@ int main(int argc, char *argv[])
                                }
                        }
 
-                       /* We have a candidate continer to process */
+                       /* We have a candidate container to process */
                        c->want_daemonize(c, 1);
 
                        if (my_args.shutdown) {
index 76af226462b958b639fd61050c3517143b188639..954f1dd2d0192792a3e9b672ec204d24e3e3dae2 100644 (file)
@@ -117,7 +117,7 @@ Options :\n\
   -t, --tmpfs               place ephemeral container on a tmpfs\n\
                             (WARNING: On reboot all changes made to the container will be lost.)\n\
   -L, --fssize              size of the new block device for block device containers\n\
-  -D, --keedata             pass together with -e start a persistent snapshot \n\
+  -D, --keepdata            pass together with -e start a persistent snapshot \n\
   -K, --keepname            keep the hostname of the original container\n\
   --  hook options          arguments passed to the hook program\n\
   -M, --keepmac             keep the MAC address of the original container\n\
index 7f1510f936e8015077e87acbdb0ee3e81cd625ae..cb3eb1e52de19dbb5893d1fd16c4b1205a6d5405 100644 (file)
@@ -463,7 +463,7 @@ static int ls_get(struct ls **m, size_t *size, const struct lxc_arguments *args,
                if (!l->name)
                        goto put_and_next;
 
-               /* Do not record stuff the user did not explictly request. */
+               /* Do not record stuff the user did not explicitly request. */
                if (args->ls_fancy) {
                        /* Maybe we should even consider the name sensitive and
                         * hide it when you're not allowed to control the
index cc00dc0dff39f590ad713d02bfceb3566f97c65b..a86d12b3c776e67be78b3534fb75b17052df601c 100644 (file)
@@ -472,6 +472,6 @@ int main(int argc, char *argv[])
                exit(EXIT_FAILURE);
        }
 
-       /* Call exit() directly on this function because it retuns an exit code. */
+       /* Call exit() directly on this function because it returns an exit code. */
        exit(EXIT_SUCCESS);
 }
index 5714a78df0642f467a3a2c2c3515c812d2d2866c..be5f3ebe0799507312f6c987eb8428a733ccddfa 100644 (file)
@@ -1385,7 +1385,7 @@ bool lxc_switch_uid_gid(uid_t uid, gid_t gid)
        return true;
 }
 
-/* Simple covenience function which enables uniform logging. */
+/* Simple convenience function which enables uniform logging. */
 bool lxc_setgroups(int size, gid_t list[])
 {
        if (setgroups(size, list) < 0) {
index bc298acc8d3c90db31021d446137311d0b5bc2af..6314b7985a8477ea77db5a02d9e16470de45aa5e 100644 (file)
@@ -211,7 +211,7 @@ __attribute__((sentinel)) extern char *must_append_path(char *first, ...);
 /* return copy of string @entry;  do not fail. */
 extern char *must_copy_string(const char *entry);
 
-/* Re-alllocate a pointer, do not fail */
+/* Re-allocate a pointer, do not fail */
 extern void *must_realloc(void *orig, size_t sz);
 
 extern bool lxc_nic_exists(char *nic);
index 8419d3b4702d5fe1c529d183593daea51c878cc1..7a83e8e17fab2defff72424dc3760f43638041a8 100644 (file)
@@ -57,7 +57,7 @@ static int test_attach_write_file(void* payload)
 
 /*
  * try opening a file attached to a container.  Return 0 on open fail.  Return
- * 1 if the file open succeeded.  Return -1 if attach itself failed - perhas an
+ * 1 if the file open succeeded.  Return -1 if attach itself failed - perhaps an
  * older kernel.
  */
 static int do_test_file_open(struct lxc_container *c, char *fnam)
index 8d20035366ae4ec577dab6b145712b1d15b48e2f..6ae4b1d403c7e8c0493ad9ad6d0b9c1ad4ade82c 100644 (file)
@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
                goto on_error_put;
        }
 
-       /* do the actual fature check for memory tracking */
+       /* do the actual feature check for memory tracking */
        m_opts.features_to_check = FEATURE_MEM_TRACK;
        if (c->migrate(c, MIGRATE_FEATURE_CHECK, &m_opts, sizeof(struct migrate_opts))) {
                lxc_debug("%s\n", "System does not support \"FEATURE_MEM_TRACK\".");
index 56d598f4cd147c48d44eadcf9029a5db33c52e24..d21c948223ff1be240c5297eee469ce30c065611 100755 (executable)
@@ -88,7 +88,7 @@ chmod 0666 "$logfile"
 
 # This would be much simpler if we could run it as
 # root.  However, in order to not have the bind mount
-# of an empty directory over the securitfs 'mount' directory
+# of an empty directory over the securityfs 'mount' directory
 # be removed, we need to do this as non-root.
 
 which newuidmap >/dev/null 2>&1 || { echo "'newuidmap' command is missing" >&2; exit 1; }
index da2f04f769acf4b471fca39ea7fce20ef5d1a12b..5c3d2754829823623513961a79cb7c64dc7d032f 100644 (file)
@@ -238,7 +238,7 @@ int main(int argc, char *argv[])
        /* Test whether we can start a really short-lived daemonized container with lxc-init. */
        for (i = 0; i < 10; i++) {
                /* An container started with lxc-init will always start
-                * succesfully unless lxc-init has a bug.
+                * successfully unless lxc-init has a bug.
                 */
                if (!c->startl(c, 1, NULL)) {
                        fprintf(stderr, "%d: %s failed to start on %dth iteration\n", __LINE__, c->name, i);
index 86cdf4d5864cd36d49ebfcd6c96878ae03646dee..a69c3c9ea61b6ada56d3f9293de0602cac5fdbaa 100644 (file)
@@ -147,7 +147,7 @@ int main(int argc, char *argv[])
        sprintf(buf, "0");
        b = c->set_cgroup_item(c, "cpuset.cpus", buf);
        if (b) {
-               fprintf(stderr, "%d: %s not running but coudl set cgroup settings\n", __LINE__, MYNAME);
+               fprintf(stderr, "%d: %s not running but could set cgroup settings\n", __LINE__, MYNAME);
                goto out;
        }