€•‘]Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ)/translations/zh_CN/networking/batman-adv”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/zh_TW/networking/batman-adv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/networking/batman-adv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/networking/batman-adv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/networking/batman-adv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/pt_BR/networking/batman-adv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/sp_SP/networking/batman-adv”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒC/var/lib/git/docbuild/linux/Documentation/networking/batman-adv.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ batman-adv”h]”hŒ batman-adv”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hX_Batman advanced is a new approach to wireless networking which does no longer operate on the IP basis. Unlike the batman daemon, which exchanges information using UDP packets and sets routing tables, batman-advanced operates on ISO/OSI Layer 2 only and uses and routes (or better: bridges) Ethernet Frames. It emulates a virtual network switch of all nodes participating. Therefore all nodes appear to be link local, thus all higher operating protocols won't be affected by any changes within the network. You can run almost any protocol above batman advanced, prominent examples are: IPv4, IPv6, DHCP, IPX.”h]”hXaBatman advanced is a new approach to wireless networking which does no longer operate on the IP basis. Unlike the batman daemon, which exchanges information using UDP packets and sets routing tables, batman-advanced operates on ISO/OSI Layer 2 only and uses and routes (or better: bridges) Ethernet Frames. It emulates a virtual network switch of all nodes participating. Therefore all nodes appear to be link local, thus all higher operating protocols won’t be affected by any changes within the network. You can run almost any protocol above batman advanced, prominent examples are: IPv4, IPv6, DHCP, IPX.”…””}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)”}”(hŒõBatman advanced was implemented as a Linux kernel driver to reduce the overhead to a minimum. It does not depend on any (other) network driver, and can be used on wifi as well as ethernet lan, vpn, etc ... (anything with ethernet-style layer 2).”h]”hŒõBatman advanced was implemented as a Linux kernel driver to reduce the overhead to a minimum. It does not depend on any (other) network driver, and can be used on wifi as well as ethernet lan, vpn, etc ... (anything with ethernet-style layer 2).”…””}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Configuration”h]”hŒ Configuration”…””}”(hhþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhûh²hh³hÇh´KubhÞ)”}”(hŒ-Load the batman-adv module into your kernel::”h]”hŒ,Load the batman-adv module into your kernel:”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khhûh²hubhŒ literal_block”“”)”}”(hŒ$ insmod batman-adv.ko”h]”hŒ$ insmod batman-adv.ko”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´Khhûh²hubhÞ)”}”(hŒµThe module is now waiting for activation. You must add some interfaces on which batman-adv can operate. The batman-adv mesh-interface can be created using the iproute2 tool ``ip``::”h]”(hŒ­The module is now waiting for activation. You must add some interfaces on which batman-adv can operate. The batman-adv mesh-interface can be created using the iproute2 tool ”…””}”(hj*h²hh³Nh´NubhŒliteral”“”)”}”(hŒ``ip``”h]”hŒip”…””}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj*ubhŒ:”…””}”(hj*h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khhûh²hubj)”}”(hŒ#$ ip link add name bat0 type batadv”h]”hŒ#$ ip link add name bat0 type batadv”…””}”hjLsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´K!hhûh²hubhÞ)”}”(hŒJTo activate a given interface simply attach it to the ``bat0`` interface::”h]”(hŒ6To activate a given interface simply attach it to the ”…””}”(hjZh²hh³Nh´Nubj3)”}”(hŒ``bat0``”h]”hŒbat0”…””}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjZubhŒ interface:”…””}”(hjZh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K#hhûh²hubj)”}”(hŒ"$ ip link set dev eth0 master bat0”h]”hŒ"$ ip link set dev eth0 master bat0”…””}”hjzsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´K%hhûh²hubhÞ)”}”(hŒyRepeat this step for all interfaces you wish to add. Now batman-adv starts using/broadcasting on this/these interface(s).”h]”hŒyRepeat this step for all interfaces you wish to add. Now batman-adv starts using/broadcasting on this/these interface(s).”…””}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K'hhûh²hubhÞ)”}”(hŒLTo deactivate an interface you have to detach it from the "bat0" interface::”h]”hŒOTo deactivate an interface you have to detach it from the “bat0†interface:”…””}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K*hhûh²hubj)”}”(hŒ$ ip link set dev eth0 nomaster”h]”hŒ$ ip link set dev eth0 nomaster”…””}”hj¤sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´K,hhûh²hubhÞ)”}”(hŒAThe same can also be done using the batctl interface subcommand::”h]”hŒ@The same can also be done using the batctl interface subcommand:”…””}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K.hhûh²hubj)”}”(hŒDbatctl -m bat0 interface create batctl -m bat0 interface add -M eth0”h]”hŒDbatctl -m bat0 interface create batctl -m bat0 interface add -M eth0”…””}”hjÀsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´K0hhûh²hubhÞ)”}”(hŒ!To detach eth0 and destroy bat0::”h]”hŒ To detach eth0 and destroy bat0:”…””}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K3hhûh²hubj)”}”(hŒEbatctl -m bat0 interface del -M eth0 batctl -m bat0 interface destroy”h]”hŒEbatctl -m bat0 interface del -M eth0 batctl -m bat0 interface destroy”…””}”hjÜsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´K5hhûh²hubhÞ)”}”(hŒ­There are additional settings for each batadv mesh interface, vlan and hardif which can be modified using batctl. Detailed information about this can be found in its manual.”h]”hŒ­There are additional settings for each batadv mesh interface, vlan and hardif which can be modified using batctl. Detailed information about this can be found in its manual.”…””}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K8hhûh²hubhÞ)”}”(hŒ—For instance, you can check the current originator interval (value in milliseconds which determines how often batman-adv sends its broadcast packets)::”h]”hŒ–For instance, you can check the current originator interval (value in milliseconds which determines how often batman-adv sends its broadcast packets):”…””}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KKhhûh²hubeh}”(h]”Œ configuration”ah ]”h"]”Œ configuration”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒUsage”h]”hŒUsage”…””}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjTh²hh³hÇh´KQubhÞ)”}”(hXbTo make use of your newly created mesh, batman advanced provides a new interface "bat0" which you should use from this point on. All interfaces added to batman advanced are not relevant any longer because batman handles them for you. Basically, one "hands over" the data by using the batman interface and batman will make sure it reaches its destination.”h]”hXjTo make use of your newly created mesh, batman advanced provides a new interface “bat0†which you should use from this point on. All interfaces added to batman advanced are not relevant any longer because batman handles them for you. Basically, one “hands over†the data by using the batman interface and batman will make sure it reaches its destination.”…””}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KShjTh²hubhÞ)”}”(hŒ¸The "bat0" interface can be used like any other regular interface. It needs an IP address which can be either statically configured or dynamically (by using DHCP or similar services)::”h]”hŒ»The “bat0†interface can be used like any other regular interface. It needs an IP address which can be either statically configured or dynamically (by using DHCP or similar services):”…””}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KYhjTh²hubj)”}”(hŒ¬NodeA: ip link set up dev bat0 NodeA: ip addr add 192.168.0.1/24 dev bat0 NodeB: ip link set up dev bat0 NodeB: ip addr add 192.168.0.2/24 dev bat0 NodeB: ping 192.168.0.1”h]”hŒ¬NodeA: ip link set up dev bat0 NodeA: ip addr add 192.168.0.1/24 dev bat0 NodeB: ip link set up dev bat0 NodeB: ip addr add 192.168.0.2/24 dev bat0 NodeB: ping 192.168.0.1”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´K]hjTh²hubhÞ)”}”(hŒ~Note: In order to avoid problems remove all IP addresses previously assigned to interfaces now used by batman advanced, e.g.::”h]”hŒ}Note: In order to avoid problems remove all IP addresses previously assigned to interfaces now used by batman advanced, e.g.:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KdhjTh²hubj)”}”(hŒ$ ip addr flush dev eth0”h]”hŒ$ ip addr flush dev eth0”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´KghjTh²hubeh}”(h]”Œusage”ah ]”h"]”Œusage”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KQubhÉ)”}”(hhh]”(hÎ)”}”(hŒLogging/Debugging”h]”hŒLogging/Debugging”…””}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj³h²hh³hÇh´KkubhÞ)”}”(hX€All error messages, warnings and information messages are sent to the kernel log. Depending on your operating system distribution this can be read in one of a number of ways. Try using the commands: ``dmesg``, ``logread``, or looking in the files ``/var/log/kern.log`` or ``/var/log/syslog``. All batman-adv messages are prefixed with "batman-adv:" So to see just these messages try::”h]”(hŒÇAll error messages, warnings and information messages are sent to the kernel log. Depending on your operating system distribution this can be read in one of a number of ways. Try using the commands: ”…””}”(hjÄh²hh³Nh´Nubj3)”}”(hŒ ``dmesg``”h]”hŒdmesg”…””}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjÄubhŒ, ”…””}”(hjÄh²hh³Nh´Nubj3)”}”(hŒ ``logread``”h]”hŒlogread”…””}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjÄubhŒ, or looking in the files ”…””}”(hjÄh²hh³Nh´Nubj3)”}”(hŒ``/var/log/kern.log``”h]”hŒ/var/log/kern.log”…””}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjÄubhŒ or ”…””}”(hjÄh²hh³Nh´Nubj3)”}”(hŒ``/var/log/syslog``”h]”hŒ/var/log/syslog”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjÄubhŒ`. All batman-adv messages are prefixed with “batman-adv:†So to see just these messages try:”…””}”(hjÄh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kmhj³h²hubj)”}”(hŒ$ dmesg | grep batman-adv”h]”hŒ$ dmesg | grep batman-adv”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´Kshj³h²hubhÞ)”}”(hXEWhen investigating problems with your mesh network, it is sometimes necessary to see more detailed debug messages. This must be enabled when compiling the batman-adv module. When building batman-adv as part of the kernel, use "make menuconfig" and enable the option ``B.A.T.M.A.N. debugging`` (``CONFIG_BATMAN_ADV_DEBUG=y``).”h]”(hXWhen investigating problems with your mesh network, it is sometimes necessary to see more detailed debug messages. This must be enabled when compiling the batman-adv module. When building batman-adv as part of the kernel, use “make menuconfig†and enable the option ”…””}”(hj(h²hh³Nh´Nubj3)”}”(hŒ``B.A.T.M.A.N. debugging``”h]”hŒB.A.T.M.A.N. debugging”…””}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj(ubhŒ (”…””}”(hj(h²hh³Nh´Nubj3)”}”(hŒ``CONFIG_BATMAN_ADV_DEBUG=y``”h]”hŒCONFIG_BATMAN_ADV_DEBUG=y”…””}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hj(ubhŒ).”…””}”(hj(h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kuhj³h²hubhÞ)”}”(hŒOThose additional debug messages can be accessed using the perf infrastructure::”h]”hŒNThose additional debug messages can be accessed using the perf infrastructure:”…””}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K{hj³h²hubj)”}”(hŒ'$ trace-cmd stream -e batadv:batadv_dbg”h]”hŒ'$ trace-cmd stream -e batadv:batadv_dbg”…””}”hjhsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´K}hj³h²hubhÞ)”}”(hŒWThe additional debug output is by default disabled. It can be enabled during run time::”h]”hŒVThe additional debug output is by default disabled. It can be enabled during run time:”…””}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj³h²hubj)”}”(hŒ#$ batctl -m bat0 loglevel routes tt”h]”hŒ#$ batctl -m bat0 loglevel routes tt”…””}”hj„sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´K‚hj³h²hubhÞ)”}”(hŒPwill enable debug messages for when routes and translation table entries change.”h]”hŒPwill enable debug messages for when routes and translation table entries change.”…””}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hj³h²hubhÞ)”}”(hŒrCounters for different types of packets entering and leaving the batman-adv module are available through ethtool::”h]”hŒqCounters for different types of packets entering and leaving the batman-adv module are available through ethtool:”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K†hj³h²hubj)”}”(hŒ$ ethtool --statistics bat0”h]”hŒ$ ethtool --statistics bat0”…””}”hj®sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´K‰hj³h²hubeh}”(h]”Œlogging-debugging”ah ]”h"]”Œlogging/debugging”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KkubhÉ)”}”(hhh]”(hÎ)”}”(hŒbatctl”h]”hŒbatctl”…””}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÄh²hh³hÇh´KubhÞ)”}”(hXiAs batman advanced operates on layer 2, all hosts participating in the virtual switch are completely transparent for all protocols above layer 2. Therefore the common diagnosis tools do not work as expected. To overcome these problems, batctl was created. At the moment the batctl contains ping, traceroute, tcpdump and interfaces to the kernel module settings.”h]”hXiAs batman advanced operates on layer 2, all hosts participating in the virtual switch are completely transparent for all protocols above layer 2. Therefore the common diagnosis tools do not work as expected. To overcome these problems, batctl was created. At the moment the batctl contains ping, traceroute, tcpdump and interfaces to the kernel module settings.”…””}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjÄh²hubhÞ)”}”(hŒ>For more information, please see the manpage (``man batctl``).”h]”(hŒ.For more information, please see the manpage (”…””}”(hjãh²hh³Nh´Nubj3)”}”(hŒ``man batctl``”h]”hŒ man batctl”…””}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j2hjãubhŒ).”…””}”(hjãh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K•hjÄh²hubhÞ)”}”(hŒ1batctl is available on https://www.open-mesh.org/”h]”(hŒbatctl is available on ”…””}”(hjh²hh³Nh´NubhŒ reference”“”)”}”(hŒhttps://www.open-mesh.org/”h]”hŒhttps://www.open-mesh.org/”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”juh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K—hjÄh²hubeh}”(h]”Œbatctl”ah ]”h"]”Œbatctl”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒContact”h]”hŒContact”…””}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj*h²hh³hÇh´K›ubhÞ)”}”(hŒ”h]”hÞ)”}”(hjòh]”(hŒMarek Lindner <”…””}”(hjôh²hh³Nh´Nubj )”}”(hŒmarek.lindner@mailbox.org”h]”hŒmarek.lindner@mailbox.org”…””}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ mailto:marek.lindner@mailbox.org”uh1j hjôubhŒ>”…””}”(hjôh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K§hjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjëh²hh³hÇh´Nubjï)”}”(hŒ(Simon Wunderlich ”h]”hÞ)”}”(hjh]”(hŒSimon Wunderlich <”…””}”(hjh²hh³Nh´Nubj )”}”(hŒsw@simonwunderlich.de”h]”hŒsw@simonwunderlich.de”…””}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:sw@simonwunderlich.de”uh1j hjubhŒ>”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¨hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjëh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1jéh³hÇh´K§hj*h²hubeh}”(h]”Œcontact”ah ]”h"]”Œcontact”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K›ubeh}”(h]”Œ batman-adv”ah ]”h"]”Œ batman-adv”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ 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-sig”Œ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”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j[jXjQjNj°j­jÁj¾j'j$jSjPuŒ nametypes”}”(j[‰jQ‰j°‰jÁ‰j'‰jS‰uh}”(jXhÊjNhûj­jTj¾j³j$jÄjPj*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”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.