Linux sagir-us1.hostever.us 5.14.0-570.51.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 8 09:41:34 EDT 2025 x86_64
LiteSpeed
Server IP : 104.247.108.91 & Your IP : 216.73.216.26
Domains : 74 Domain
User : georgeto
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
python3-llfuse /
html /
.doctrees /
Delete
Unzip
Name
Size
Permission
Date
Action
about.doctree
10.45
KB
-rw-r--r--
2021-02-01 20:07
changes.doctree
78.18
KB
-rw-r--r--
2021-02-01 20:07
data.doctree
45.45
KB
-rw-r--r--
2021-02-01 20:22
environment.pickle
1.64
MB
-rw-r--r--
2021-02-01 20:22
example.doctree
79.57
KB
-rw-r--r--
2021-02-01 20:07
fuse_api.doctree
34.19
KB
-rw-r--r--
2021-02-01 20:22
general.doctree
20.07
KB
-rw-r--r--
2021-02-01 20:07
gotchas.doctree
5.36
KB
-rw-r--r--
2021-02-01 20:07
index.doctree
4.38
KB
-rw-r--r--
2021-02-01 20:07
install.doctree
19.21
KB
-rw-r--r--
2021-02-01 20:07
lock.doctree
18.36
KB
-rw-r--r--
2021-02-01 20:22
operations.doctree
146.99
KB
-rw-r--r--
2021-02-01 20:22
util.doctree
20.38
KB
-rw-r--r--
2021-02-01 20:22
Save
Rename
��<P �sphinx.addnodes��document���)��}�(� rawsource�� ��children�]��docutils.nodes��section���)��}�(hhh]�(h �title���)��}�(h�General Information�h]�h �Text����General Information�����}�(hh�parent�hhh�source�N�line�Nuba� attributes�}�(�ids�]��classes�]��names�]��dupnames�]��backrefs�]�u�tagname�hhhhhh�*/home/user/w/python-llfuse/rst/general.rst�hKubh �target���)��}�(h�.. _getting_started:�h]�h}�(h ]�h"]�h$]�h&]�h(]��refid��getting-started�uh*h,hKhhhhhh+ubh)��}�(hhh]�(h)��}�(h�Getting started�h]�h�Getting started�����}�(hh?hh=hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*hhh:hhhh+hK ubh � paragraph���)��}�(hX� A file system is implemented by subclassing the `llfuse.Operations` class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode.�h]�(h�0A file system is implemented by subclassing the �����}�(h�0A file system is implemented by subclassing the �hhMhhhNhNubh �pending_xref���)��}�(h�`llfuse.Operations`�h]�h �literal���)��}�(hhZh]�h�llfuse.Operations�����}�(hhhh^ubah}�(h ]�h"]�(�xref��py��py-obj�eh$]�h&]�h(]�uh*h\hhXubah}�(h ]�h"]�h$]�h&]�h(]��refdoc��general�� refdomain�hi�reftype��obj��refexplicit���refwarn��� py:module��llfuse��py:class�N� reftarget��llfuse.Operations�uh*hVhh+hKhhMubhX@ class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode.�����}�(hX@ class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode.�hhMhhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hKhh:hhubhL)��}�(hX An instance of the operations class is passed to `llfuse.init` to mount the file system. To enter the request handling loop, run `llfuse.main`. This function will return when the file system should be unmounted again, which is done by calling `llfuse.close`.�h]�(h�1An instance of the operations class is passed to �����}�(h�1An instance of the operations class is passed to �hh�hhhNhNubhW)��}�(h� `llfuse.init`�h]�h])��}�(hh�h]�h�llfuse.init�����}�(hhhh�ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hh�ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�h��reftype��obj��refexplicit���refwarn��h{h|h}Nh~�llfuse.init�uh*hVhh+hKhh�ubh�C to mount the file system. To enter the request handling loop, run �����}�(h�C to mount the file system. To enter the request handling loop, run �hh�hhhNhNubhW)��}�(h� `llfuse.main`�h]�h])��}�(hh�h]�h�llfuse.main�����}�(hhhh�ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hh�ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�hnjreftype��obj��refexplicit���refwarn��h{h|h}Nh~�llfuse.main�uh*hVhh+hKhh�ubh�e. This function will return when the file system should be unmounted again, which is done by calling �����}�(h�e. This function will return when the file system should be unmounted again, which is done by calling �hh�hhhNhNubhW)��}�(h�`llfuse.close`�h]�h])��}�(hh�h]�h�llfuse.close�����}�(hhhh�ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hh�ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�h�reftype��obj��refexplicit���refwarn��h{h|h}Nh~�llfuse.close�uh*hVhh+hKhh�ubh�.�����}�(h�.�hh�hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hKhh:hhubhL)��}�(h��All character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as `bytes` and must be returned as `bytes`. This applies to both running under Python 2.x and 3.x�h]�(h�yAll character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as �����}�(h�yAll character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as �hj hhhNhNubhW)��}�(h�`bytes`�h]�h])��}�(hj h]�h�bytes�����}�(hhhj ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�bytes�uh*hVhh+hKhj ubh� and must be returned as �����}�(h� and must be returned as �hj hhhNhNubhW)��}�(h�`bytes`�h]�h])��}�(hj9 h]�h�bytes�����}�(hhhj; ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj7 ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�jE �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�bytes�uh*hVhh+hKhj ubh�7. This applies to both running under Python 2.x and 3.x�����}�(h�7. This applies to both running under Python 2.x and 3.x�hj hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hKhh:hhubhL)��}�(h��For easier debugging, it is strongly recommended that applications using Python-LLFUSE also make use of the faulthandler_ module.�h]�(h�lFor easier debugging, it is strongly recommended that applications using Python-LLFUSE also make use of the �����}�(h�lFor easier debugging, it is strongly recommended that applications using Python-LLFUSE also make use of the �hjb hhhNhNubh � reference���)��}�(h� faulthandler_�h]�h�faulthandler�����}�(h�faulthandler�hjm ubah}�(h ]�h"]�h$]�h&]�h(]��name�ju �refuri��2http://docs.python.org/3/library/faulthandler.html�uh*jk hjb �resolved�Kubh� module.�����}�(h� module.�hjb hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hKhh:hhubh-)��}�(h�D.. _faulthandler: http://docs.python.org/3/library/faulthandler.html�h]�h}�(h ]��faulthandler�ah"]�h$]��faulthandler�ah&]�h(]�j} j~ uh*h,hK hh:hhhh+� referenced�Kubeh}�(h ]�(h9�id1�eh"]�h$]�(�getting started��getting_started�eh&]�h(]�uh*h hhhhhh+hK �expect_referenced_by_name�}�j� h.s�expect_referenced_by_id�}�h9h.subh)��}�(hhh]�(h)��}�(h� Lookup Counts�h]�h� Lookup Counts�����}�(hj� hj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*hhj� hhhh+hK$ubhL)��}�(hXl Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the *unlink* system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process.�h]�(h��Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the �����}�(h��Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the �hj� hhhNhNubh �emphasis���)��}�(h�*unlink*�h]�h�unlink�����}�(hhhj� ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j� hj� ubh�� system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process.�����}�(h�� system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process.�hj� hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hK&hj� hhubhL)��}�(hX� FUSE file systems achieve this by using "lookup counts". A lookup count is a number that's associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled.�h]�hX� FUSE file systems achieve this by using “lookup counts”. A lookup count is a number that’s associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled.�����}�(hj� hj� hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hK-hj� hhubhL)��}�(hX The lookup count of an inode is increased by one for each call to the `~Operations.lookup`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` handlers. The lookup count is decreased by calls to the `~Operations.forget` handler.�h]�(h�FThe lookup count of an inode is increased by one for each call to the �����}�(h�FThe lookup count of an inode is increased by one for each call to the �hj� hhhNhNubhW)��}�(h�`~Operations.lookup`�h]�h])��}�(hj� h]�h�lookup�����}�(hhhj� ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j� �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.lookup�uh*hVhh+hK4hj� ubh�, �����}�(h�, �hj� hhhNhNubhW)��}�(h�`~Operations.create`�h]�h])��}�(hj h]�h�create�����}�(hhhj ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j$ �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.create�uh*hVhh+hK4hj� ubh�, �����}�(h�, �hj� ubhW)��}�(h�`~Operations.symlink`�h]�h])��}�(hj= h]�h�symlink�����}�(hhhj? ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj; ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�jI �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.symlink�uh*hVhh+hK4hj� ubh�, �����}�(h�, �hj� hhhNhNubhW)��}�(h�`~Operations.mknod`�h]�h])��}�(hjb h]�h�mknod�����}�(hhhjd ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj` ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�jn �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.mknod�uh*hVhh+hK4hj� ubh�, �����}�(hj hj� ubhW)��}�(h�`~Operations.link`�h]�h])��}�(hj� h]�h�link�����}�(hhhj� ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j� �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.link�uh*hVhh+hK4hj� ubh� and �����}�(h� and �hj� hhhNhNubhW)��}�(h�`~Operations.mkdir`�h]�h])��}�(hj� h]�h�mkdir�����}�(hhhj� ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j� �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.mkdir�uh*hVhh+hK4hj� ubh�9 handlers. The lookup count is decreased by calls to the �����}�(h�9 handlers. The lookup count is decreased by calls to the �hj� hhhNhNubhW)��}�(h�`~Operations.forget`�h]�h])��}�(hj� h]�h�forget�����}�(hhhj� ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j� �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.forget�uh*hVhh+hK4hj� ubh� handler.�����}�(h� handler.�hj� hhhNhNubeh}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hK4hj� hhubeh}�(h ]�� lookup-counts�ah"]�h$]�� lookup counts�ah&]�h(]�uh*h hhhhhh+hK$ubh)��}�(hhh]�(h)��}�(h�FUSE and VFS Locking�h]�h�FUSE and VFS Locking�����}�(hj hj hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*hhj hhhh+hK<ubhL)��}�(h��FUSE and the kernel's VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically:�h]�h��FUSE and the kernel’s VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically:�����}�(hj hj hhhNhNubah}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hK>hj hhubh �bullet_list���)��}�(hhh]�(h � list_item���)��}�(hX Calls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename). �h]�hL)��}�(hX Calls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename).�h]�(h� Calls to �����}�(h� Calls to �hj+ ubhW)��}�(h�`~Operations.rename`�h]�h])��}�(hj6 h]�h�rename�����}�(hhhj8 ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj4 ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�jB �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.rename�uh*hVhh+hKAhj+ ubh�, �����}�(h�, �hj+ ubhW)��}�(h�`~Operations.create`�h]�h])��}�(hj[ h]�h�create�����}�(hhhj] ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hjY ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�jg �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.create�uh*hVhh+hKAhj+ ubh�, �����}�(h�, �hj+ ubhW)��}�(h�`~Operations.symlink`�h]�h])��}�(hj� h]�h�symlink�����}�(hhhj� ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj~ ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j� �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.symlink�uh*hVhh+hKAhj+ ubh�, �����}�(h�, �hj+ ubhW)��}�(h�`~Operations.mknod`�h]�h])��}�(hj� h]�h�mknod�����}�(hhhj� ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j� �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.mknod�uh*hVhh+hKAhj+ ubh�, �����}�(hjX hj+ ubhW)��}�(h�`~Operations.link`�h]�h])��}�(hj� h]�h�link�����}�(hhhj� ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j� �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.link�uh*hVhh+hKAhj+ ubh� and �����}�(h� and �hj+ ubhW)��}�(h�`~Operations.mkdir`�h]�h])��}�(hj� h]�h�mkdir�����}�(hhhj� ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj� ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j� �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.mkdir�uh*hVhh+hKAhj+ ubh�z acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename).�����}�(h�z acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename).�hj+ ubeh}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hKAhj' ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j% hj" hhhh+hNubj& )��}�(h��Calls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation). �h]�hL)��}�(h��Calls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation).�h]�(h� Calls to �����}�(h� Calls to �hj! ubhW)��}�(h�`~Operations.lookup`�h]�h])��}�(hj, h]�h�lookup�����}�(hhhj. ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hj* ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�j8 �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.lookup�uh*hVhh+hKGhj! ubh�� acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation).�����}�(h�� acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation).�hj! ubeh}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hKGhj ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j% hj" hhhh+hNubj& )��}�(h��Unless writeback caching is enabled (which Python-LLFUSE does not yet allow), calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).�h]�hL)��}�(h��Unless writeback caching is enabled (which Python-LLFUSE does not yet allow), calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).�h]�(h�WUnless writeback caching is enabled (which Python-LLFUSE does not yet allow), calls to �����}�(h�WUnless writeback caching is enabled (which Python-LLFUSE does not yet allow), calls to �hj_ ubhW)��}�(h�`~Operations.write`�h]�h])��}�(hjj h]�h�write�����}�(hhhjl ubah}�(h ]�h"]�(hh�py��py-obj�eh$]�h&]�h(]�uh*h\hjh ubah}�(h ]�h"]�h$]�h&]�h(]��refdoc�hu� refdomain�jv �reftype��obj��refexplicit���refwarn��h{h|h}Nh~�Operations.write�uh*hVhh+hKLhj_ ubh�� for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).�����}�(h�� for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).�hj_ ubeh}�(h ]�h"]�h$]�h&]�h(]�uh*hKhh+hKLhj[ ubah}�(h ]�h"]�h$]�h&]�h(]�uh*j% hj" hhhh+hNubeh}�(h ]�h"]�h$]�h&]�h(]��bullet��*�uh*j hh+hKAhj hhubeh}�(h ]��fuse-and-vfs-locking�ah"]�h$]��fuse and vfs locking�ah&]�h(]�uh*h hhhhhh+hK<ubeh}�(h ]��general-information�ah"]�h$]��general information�ah&]�h(]�uh*h hhhhhh+hKubah}�(h ]�h"]�h$]�h&]�h(]��source�h+uh*h�current_source�N�current_line�N�settings��docutils.frontend��Values���)��}�(hN� generator�N� datestamp�N�source_link�N� source_url�N� toc_backlinks��entry��footnote_backlinks�K� sectnum_xform�K�strip_comments�N�strip_elements_with_classes�N� strip_classes�N�report_level�K� halt_level�K�exit_status_level�K�debug�N�warning_stream�N� traceback���input_encoding��utf-8��input_encoding_error_handler��strict��output_encoding��utf-8��output_encoding_error_handler�j� �error_encoding��UTF-8��error_encoding_error_handler��backslashreplace�� language_code��en��record_dependencies�N�config�N� id_prefix�h�auto_id_prefix��id�� dump_settings�N�dump_internals�N�dump_transforms�N�dump_pseudo_xml�N�expose_internals�N�strict_visitor�N�_disable_config�N�_source�h+�_destination�N� _config_files�]��pep_references�N�pep_base_url�� https://www.python.org/dev/peps/��pep_file_url_template��pep-%04d��rfc_references�N�rfc_base_url��https://tools.ietf.org/html/�� tab_width�K�trim_footnote_reference_space���file_insertion_enabled���raw_enabled�K�syntax_highlight��long��smart_quotes���smartquotes_locales�]��character_level_inline_markup���doctitle_xform��� docinfo_xform�K�sectsubtitle_xform���embed_stylesheet���cloak_email_addresses���env�Nub�reporter�N�indirect_targets�]��substitution_defs�}��substitution_names�}��refnames�}��faulthandler�]�jm as�refids�}�h9]�h.as�nameids�}�(j� j� j� h9j� j� j� j� j� j� j� j� u� nametypes�}�(j� Nj� �j� Nj� �j� Nj� Nuh }�(j� hh9h:j� h:j� j� j� j� j� j u� footnote_refs�}�� citation_refs�}�� autofootnotes�]��autofootnote_refs�]��symbol_footnotes�]��symbol_footnote_refs�]�� footnotes�]�� citations�]��autofootnote_start�K�symbol_footnote_start�K � id_counter��collections��Counter���}�j� Ks��R��parse_messages�]��transform_messages�]�h �system_message���)��}�(hhh]�hL)��}�(hhh]�h�5Hyperlink target "getting-started" is not referenced.�����}�(hhhj; ubah}�(h ]�h"]�h$]�h&]�h(]�uh*hKhj8 ubah}�(h ]�h"]�h$]�h&]�h(]��level�K�type��INFO��source�h+�line�Kuh*j6 uba�transformer�N� decoration�Nhhub.