Files
Hippolyzer/docs/html/.doctrees/modules/message_manager.doctree

59 lines
16 KiB
Plaintext
Raw Normal View History

<EFBFBD>(cdocutils.nodes
document
qoq}q(U nametypesq}q(X=pyogp.lib.base.message_manager.MessageManager.enqueue_messageqKXmessage_managerqNX<pyogp.lib.base.message_manager.MessageManager.start_monitorsqKXDpyogp.lib.base.message_manager.MessageManager.monitor_outgoing_queueq KX-pyogp.lib.base.message_manager.MessageManagerq
KX>pyogp.lib.base.message_manager.MessageManager.send_udp_messageq KX:pyogp.lib.base.message_manager.MessageManager.send_messageq KX;pyogp.lib.base.message_manager.MessageManager.stop_monitorsq KX9pyogp.lib.base.message_manager.MessageManager.new_messageqKuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU
decorationqNUautofootnote_startqKUnameidsq}q(hhhUmessage-managerqhhh h h
h
h h h h h h hhuUchildrenq]q(cdocutils.nodes
section
qoq}q(U rawsourceqUUparentqhUsourceq UY/Users/enus/svn/pyogp.buildout/src/pyogp.lib.base/docs/source/modules/message_manager.rstq!Utagnameq"Usectionq#U
attributesq$}q%(Udupnamesq&]q'Uclassesq(]q)Ubackrefsq*]q+Uidsq,]q-X%module-pyogp.lib.base.message_managerq.aUnamesq/]q0hauUlineq1KUdocumentq2hh]q3((cdocutils.nodes
title
q4oq5}q6(hX:mod:`message_manager`q7hhh h!h"Utitleq8h$}q9(h&]q:h(]q;h*]q<h,]q=h/]q>uh1Kh2hh]q?(csphinx.addnodes
pending_xref
q@oqA}qB(hh7hh5h"U pending_xrefqCh$}qD(UreftypeqEXmodqFUmodnameqGNU
refcaptionqH<EFBFBD>U reftargetqIXmessage_managerqJh,]qKh*]qLU classnameqMNh&]qNh(]qOh/]qPuh1Kh]qQ(cdocutils.nodes
literal
qRoqS}qT(hh7h$}qU(h&]qVh(]qWUxrefqXah*]qYh,]qZh/]q[uhhAh]q\(cdocutils.nodes
Text
q]oq^}q_(hUUdataq`hJhhSubah"Uliteralqaubaubaub(csphinx.addnodes
index
qboqc}qd(hUhhh U <autodoc>qeh"Uindexqfh$}qg(h,]qhh*]qih&]qjh(]qkh/]qlUentriesqm]qn(UsingleqoX'pyogp.lib.base.message_manager (module)X%module-pyogp.lib.base.message_managerXpyogp.lib.base.message_managerqptqqauh1Kh2hh]qrub(csphinx.addnodes
module
qsoqt}qu(hUhhh heh"Umoduleqvh$}qw(Umodnameqxhph,]qyh*]qzh&]q{Usynopsisq|Uh(]q}h/]q~uh1Kh2hh]qub(hboq<6F>}q<>(hUhhh Nh"hfh$}q<>(h,]q<>h*]q<>h&]q<>h(]q<>h/]q<>Uentriesq<73>]q<>(hoX8MessageManager (class in pyogp.lib.base.message_manager)h
h
tq<EFBFBD>auh1Nh2hh]q<>ub(csphinx.addnodes
desc
q<EFBFBD>oq<EFBFBD>}q<>(hUhhh Nh"Udescq<63>h$}q<>(Unoindexq<78><71>h,]q<>h*]q<>h&]q<>h(]q<>h/]q<>Udesctypeq<65>Xclassq<73>uh1Nh2hh]q<>((csphinx.addnodes
desc_signature
q<EFBFBD>oq<EFBFBD>}q<>(hX<>MessageManager(host, message_handler=None, capabilities={}, settings=None, start_monitors=False, message_template=None, message_xml=None)q<>hh<>h U <autodoc>q<>h"Udesc_signatureq<65>h$}q<>(h,]q<>h
ah*]q<>h&]q<>h(]q<>h/]q<>h
aUfirstq<74><71>uh1Nh2hh]q<>((csphinx.addnodes
desc_annotation
q<EFBFBD>oq<EFBFBD>}q<>(hXclass q<>hh<>h h<>h"Udesc_annotationq<6E>h$}q<>(h&]q<>h(]q<>h*]q<>h,]q<>h/]q<>uh1Nh2hh]q<>(h]oq<6F>}q<>(hUh`h<>hh<>ubaub(csphinx.addnodes
desc_addname
q<EFBFBD>oq<EFBFBD>}q<>(hXpyogp.lib.base.message_manager.q<>hh<>h h<>h"U desc_addnameq<65>h$}q<>(h&]q<>h(]q<>h*]q<>h,]q<>h/]q<>uh1Nh2hh]q<>(h]oq<6F>}q<>(hUh`h<>hh<>ubaub(csphinx.addnodes
desc_name
q<EFBFBD>oq<EFBFBD>}q<>(hXMessageManagerq<72>hh<>h h<>h"U desc_nameq<65>h$}q<>(h&]q<>h(]q<>h*]q<>h,]q<>h/]q<>uh1Nh2hh]q<>(h]oq<6F>}q<>(hUh`h<>hh<>ubaub(csphinx.addnodes
desc_parameterlist
q<EFBFBD>oq<EFBFBD>}q<>(hUhh<>h h<>h"Udesc_parameterlistq<74>h$}q<>(h&]q<>h(]q<>h*]q<>h,]q<>h/]q<>uh1Nh2hh]q<>((csphinx.addnodes
desc_parameter
q<EFBFBD>oq<EFBFBD>}q<>(hXhostq<74>hh<>h h<>h"Udesc_parameterq<72>h$}q<>(h&]q<>h(]q<>h*]q<>h,]q<>h/]q<>uh1Nh2hh]q<>(h]oq<6F>}q<>(hUh`h<>hh<>ubaub(h<>oq<6F>}q<>(hXmessage_handler=Noneq<65>hh<>h h<>h"h<>h$}q<>(h&]q<>h(]q<>h*]q<>h,]q<>h/]q<>uh1Nh2hh]q<>(h]oq<6F>}q<>(hUh`h<>hh<>ubaub(h<>oq<6F>}q<>(hXcapabilities={}q<>hh<>h h<>h"h<>h$}q<>(h&]q<>h(]q<>h*]q<>h,]q<>h/]q<>uh1Nh2hh]r(h]or}r(hUh`h<>hh<>ubaub(h<>or}r(hX settings=Nonerhh<>h h<>h"h<>h$}r(h&]rh(]rh*]r h,]r
h/]r uh1Nh2hh]r (h]or }r(hUh`jhjubaub(h<>or}r(hXstart_monitors=Falserhh<>h h<>h"h<>h$}r(h&]rh(]rh*]rh,]rh/]ruh1Nh2hh]r(h]or}r(hUh`jhjubaub(h<>or}r(hXmessage_template=Nonerhh<>h h<>h"h<>h$}r(h&]rh(]r h*]r!h,]r"h/]r#uh1Nh2hh]r$(h]or%}r&(hUh`jhjubaub(h<>or'}r((hXmessage_xml=Noner)hh<>h h<>h"h<>h$}r*(h&]r+h(]r,h*]r-h,]r.h/]r/uh1Nh2hh]r0(h]or1}r2(hUh`j)hj'ubaubeubeub(csphinx.addnodes
desc_content
r3or4}r5(hUhh<>h h<>h"U desc_contentr6h$}r7(h&]r8h(]r9h*]r:h,]r;h/]r<uh1Nh2hh]r=((cdocutils.nodes
paragraph
r>or?}r@(hXrThis object serves as a consolidation point for all messaging related
functionality in the base/message directory.rAhj4h X<>/Users/enus/svn/pyogp.buildout/src/pyogp.lib.base/pyogp/lib/base/message_manager.py:docstring of pyogp.lib.base.message_manager.MessageManagerrBh"U paragraphrCh$}rD(h&]rEh(]rFh*]rGh,]rHh/]rIuh1Kh2hh]rJ(h]orK}rL(hjAh`XrThis object serves as a consolidation point for all messaging related
functionality in the base/message directory.rMhj?ubaub(j>orN}rO(hX`Initialize the MessageManager, applying custom settings and dedicated
message_handler if neededrPhj4h jBh"jCh$}rQ(h&]rRh(]rSh*]rTh,]rUh/]rVuh1Kh2hh]rW(h]orX}rY(hjPh`X`Initialize the MessageManager, applying custom settings and dedicated
message_handler if neededrZhjNubaub(hbor[}r\(hUhj4h X<>/Users/enus/svn/pyogp.buildout/src/pyogp.lib.base/pyogp/lib/base/message_manager.py:docstring of pyogp.lib.base.message_manager.MessageManager.enqueue_messager]h"hfh$}r^(h,]r_h*]r`h&]rah(]rbh/]rcUentriesrd]re(hoXHenqueue_message() (pyogp.lib.base.message_manager.MessageManager method)hhtrfauh1Nh2hh]rgub(h<>orh}ri(hUhj4h j]h"h<>h$}rj(h<><68>h,]rkh*]rlh&]rmh(]rnh/]roh<>Xmethodrpuh1Nh2hh]rq((h<>orr}rs(hXBMessageManager.enqueue_message(message, reliable=False, now=False)rthjhh h<>h"h<>h$}ru(h,]rvhah*]rwh&]rxh(]ryh/]rzhah<61><68>uh1Nh2hh]r{((h<>or|}r}(hXenqueue_messager~hjrh h<>h"h<>h$}r(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(h]or<6F>}r<>(hUh`j~hj|ubaub(h<>or<6F>}r<>(hUhjrh h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>((h<>or<6F>}r<>(hXmessager<65>hj<>h h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(h]or<6F>}r<>(hUh`j<>hj<>ubaub(h<>or<6F>}r<>(hXreliable=Falser<65>hj<>h h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(h]or<6F>}r<>(hUh`j<>hj<>ubaub(h<>or<6F>}r<>(hX now=Falser<65>hj<>h h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(h]or<6F>}r<>(hUh`j<>hj<>ubaubeubeub(j3or<6F>}r<>(hUhjhh h<>h"j6h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(j>or<6F>}r<>(hX*enqueues a Message() in the outgoing_queuer<65>hj<>h j]h"jCh$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Kh2hh]r<>(h]or<6F>}r<>(hj<>h`X*enqueues a Message() in the outgoing_queuer<65>hj<>ubaubaubeub(hbor<6F>}r<>(hUhj4h Nh"hfh$}r<>(h,]r<>h*]r<>h&]r<>h(]r<>h/]r<>Uentriesr<73>]r<>(hoXOmonitor_outgoing_queue() (pyogp.lib.base.message_manager.MessageManager method)h h tr<74>auh1Nh2hh]r<>ub(h<>or<6F>}r<>(hUhj4h Nh"h<>h$}r<>(h<><68>h,]r<>h*]r<>h&]r<>h(]r<>h/]r<>h<>Xmethodr<64>uh1Nh2hh]r<>((h<>or<6F>}r<>(hX'MessageManager.monitor_outgoing_queue()r<>hj<>h h<>h"h<>h$}r<>(h,]r<>h ah*]r<>h&]r<>h(]r<>h/]r<>h ah<61><68>uh1Nh2hh]r<>((h<>or<6F>}r<>(hXmonitor_outgoing_queuer<65>hj<>h h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(h]or<6F>}r<>(hUh`j<>hj<>ubaub(h<>or<6F>}r<>(hUhj<>h h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>ubeub(j3or}r(hUhj<>h h<>h"j6h$}r(h&]rh(]rh*]rh,]rh/]ruh1Nh2hh]rubeub(hbor }r
(hUhj4h Nh"hfh$}r (h,]r h*]r h&]rh(]rh/]rUentriesr]r(hoXDnew_message() (pyogp.lib.base.message_manager.MessageManager method)hhtrauh1Nh2hh]rub(h<>or}r(hUhj4h Nh"h<>h$}r(h<><68>h,]rh*]rh&]rh(]rh/]rh<>Xmethodruh1Nh2hh]r((h<>or}r (hX MessageManager.new_message(name)r!hjh h<>h"h<>h$}r"(h,]r#hah*]r$h&]r%h(]r&h/]r'hah<61><68>uh1Nh2hh]r(((h<>or)}r*(hX new_messager+hjh h<>h"h<>h$}r,(h&]r-h(]r.h*]r/h,]r0h/]r1uh1Nh2hh]r2(h]or3}r4(hUh`j+hj)ubaub(h<>or5}r6(hUhjh h<>h"h<>h$}r7(h&]r8h(]r9h*]r:h,]r;h/]r<uh1Nh2hh]r=(h<>or>}r?(hXnamer@hj5h h<>h"h<>h$}rA(h&]rBh(]rCh*]rDh,]rEh/]rFuh1Nh2hh]rG(h]orH}rI(hUh`j@hj>ubaubaubeub(j3orJ}rK(hUhjh h<>h"j6h$}rL(h&]rMh(]rNh*]rOh,]rPh/]rQuh1Nh2hh]rRubeub(hborS}rT(hUhj4h Nh"hfh$}rU(h,]rVh*]rWh&]rXh(]rYh/]rZUentriesr[]r\(hoXEsend_message() (pyogp.lib.base.message_manager.MessageManager method)h h tr]auh1Nh2hh]r^ub(h<>or_}r`(hUhj4h Nh"h<>h$}ra(h<><68>h,]rbh*]rch&]rdh(]reh/]rfh<>Xmethodrguh1Nh2hh]rh((h<>ori}rj(hXMessageManager.send_message()rkhj_h h<>h"h<>h$}rl(h,]rmh ah*]rnh&]roh(]rph/]rqh ah<61><68>uh1Nh2hh]rr((h<>ors}rt(hX send_messageruhjih h<>h"h<>h$}rv(h&]rwh(]rxh*]ryh,]rzh/]r{uh1Nh2hh]r|(h]or}}r~(hUh`juhjsubaub(h<>or}r<>(hUhjih h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>ubeub(j3or<6F>}r<>(hUhj_h h<>h"j6h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>ubeub(hbor<6F>}r<>(hUhj4h X<>/Users/enus/svn/pyogp.buildout/src/pyogp.lib.base/pyogp/lib/base/message_manager.py:docstring of pyogp.lib.base.message_manager.MessageManager.send_udp_messager<65>h"hfh$}r<>(h,]r<>h*]r<>h&]r<>h(]r<>h/]r<>Uentriesr<73>]r<>(hoXIsend_udp_message() (pyogp.lib.base.message_manager.MessageManager method)h h tr<74>auh1Nh2hh]r<>ub(h<>or<6F>}r<>(hUhj4h j<>h"h<>h$}r<>(h<><68>h,]r<>h*]r<>h&]r<>h(]r<>h/]r<>h<>Xmethodr<64>uh1Nh2hh]r<>((h<>or<6F>}r<>(hX7MessageManager.send_udp_message(packet, reliable=False)r<>hj<>h h<>h"h<>h$}r<>(h,]r<>h ah*]r<>h&]r<>h(]r<>h/]r<>h ah<61><68>uh1Nh2hh]r<>((h<>or<6F>}r<>(hXsend_udp_messager<65>hj<>h h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(h]or<6F>}r<>(hUh`j<>hj<>ubaub(h<>or<6F>}r<>(hUhj<>h h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>((h<>or<6F>}r<>(hXpacketr<74>hj<>h h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(h]or<6F>}r<>(hUh`j<>hj<>ubaub(h<>or<6F>}r<>(hXreliable=Falser<65>hj<>h h<>h"h<>h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(h]or<6F>}r<>(hUh`j<>hj<>ubaubeubeub(j3or<6F>}r<>(hUhj<>h h<>h"j6h$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1Nh2hh]r<>(j>or<6F>}r<>(hX(Immediately sends an udp message to hostr<74>hj<>h j<>h"jCh$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1K!h2hh]r<>(h]or<6F>}r<>(hj<>h`X(Immediately sends an udp message to hostr<74>hj<>ubaubaubeub(hbor<6F>}r<>(hUhj4h X<>/Users/enus/svn/pyogp.buildout/src/pyogp.lib.base/pyogp/lib/base/message_manager.py:docstring of pyogp.lib.base.message_manager.MessageManager.start_monitorsr<73>h"hfh$}r<>(h,]r<>h*]r<>h&]r<>h(]r<>h/]r<>Uentriesr<73>]r<>(hoXGstart_monitors() (pyogp.lib.base.message_manager.MessageManager method)hhtrauh1Nh2hh]rub(h<>or}r(hUhj4h j<>h"h<>h$}r(h<><68>h,]rh*]rh&]rh(]rh/]r h<>Xmethodr
uh1Nh2hh]r ((h<>or }r (hXMessageManager.start_monitors()rhjh h<>h"h<>h$}r(h,]rhah*]rh&]rh(]rh/]rhah<61><68>uh1Nh2hh]r((h<>or}r(hXstart_monitorsrhj h h<>h"h<>h$}r(h&]rh(]rh*]rh,]rh/]ruh1Nh2hh]r(h]or }r!(hUh`jhjubaub(h<>or"}r#(hUhj h h<>h"h<>h$}r$(h&]r%h(]r&h*]r'h,]r(h/]r)uh1Nh2hh]r*ubeub(j3or+}r,(hUhjh h<>h"j6h$}r-(h&]r.h(]r/h*]r0h,]r1h/]r2uh1Nh2hh]r3(j>or4}r5(hX!spawn queue monitoring coroutinesr6hj+h j<>h"jCh$}r7(h&]r8h(]r9h*]r:h,]r;h/]r<uh1K'h2hh]r=(h]or>}r?(hj6h`X!spawn queue monitoring coroutinesr@hj4ubaubaubeub(hborA}rB(hUhj4h X<>/Users/enus/svn/pyogp.buildout/src/pyogp.lib.base/pyogp/lib/base/message_manager.py:docstring of pyogp.lib.base.message_manager.MessageManager.stop_monitorsrCh"hfh$}rD(h,]rEh*]rFh&]rGh(]rHh/]rIUentriesrJ]rK(hoXFstop_monitors() (pyogp.lib.base.message_manager.MessageManager method)h h trLauh1Nh2hh]rMub(h<>orN}rO(hUhj4h jCh"h<>h$}rP(h<><68>h,]rQh*]rRh&]rSh(]rTh/]rUh<>XmethodrVuh1Nh2hh]rW((h<>orX}rY(hXMessageManager.stop_monitors()rZhjNh h<>h"h<>h$}r[(h,]r\h ah*]r]h&]r^h(]r_h/]r`h ah<61><68>uh1Nh2hh]ra((h<>orb}rc(hX stop_monitorsrdhjXh h<>h"h<>h$}re(h&]rfh(]rgh*]rhh,]rih/]rjuh1Nh2hh]rk(h]orl}rm(hUh`jdhjbubaub(h<>orn}ro(hUhjXh h<>h"h<>h$}rp(h&]rqh(]rrh*]rsh,]rth/]ruuh1Nh2hh]rvubeub(j3orw}rx(hUhjNh h<>h"j6h$}ry(h&]rzh(]r{h*]r|h,]r}h/]r~uh1Nh2hh]r(j>or<6F>}r<>(hXstops monitoring coroutinesr<73>hjwh jCh"jCh$}r<>(h&]r<>h(]r<>h*]r<>h,]r<>h/]r<>uh1K-h2hh]r<>(h]or<6F>}r<>(hj<>h`Xstops monitoring coroutinesr<73>hj<>ubaubaubeubeubeubeubahUU transformerr<72>NU footnote_refsr<73>}r<>Urefnamesr<73>}r<>Usymbol_footnotesr<73>]r<>Uautofootnote_refsr<73>]r<>Usymbol_footnote_refsr<73>]r<>U citationsr<73>]r<>h2hU current_liner<65>NUtransform_messagesr<73>]r<>Ureporterr<72>NUid_startr<74>KU autofootnotesr<73>]r<>U citation_refsr<73>}r<>Uindirect_targetsr<73>]r<>Usettingsr<73>(cdocutils.frontend
Values
r<EFBFBD>or<6F>}r<>(Ufootnote_backlinksr<73>KUrecord_dependenciesr<73>NU rfc_base_urlr<6C>Uhttp://tools.ietf.org/html/r<>U tracebackr<6B>KUpep_referencesr<73>NUstrip_commentsr<73>NU toc_backlinksr<73>Uentryr<79>U language_coder<65>Uenr<6E>U datestampr<70>NU report_levelr<6C>KU _destinationr<6E>NU
halt_levelr<EFBFBD>KU strip_classesr<73>Nh8NUerror_encoding_error_handlerr<72>Ubackslashreplacer<65>Udebugr<67>NUembed_stylesheetr<74><00>Uoutput_encoding_error_handlerr<72>Ustrictr<74>U sectnum_xformr<6D>KUdump_transformsr<73>NU docinfo_xformr<6D>KUwarning_streamr<6D>NUpep_file_url_templater<65>Upep-%04dr<64>Uexit_status_levelr<6C>KUconfigr<67>NUstrict_visitorr<72>NUcloak_email_addressesr<73><00>Utrim_footnote_reference_spacer<65><00>Uenvr<76>NUdump_pseudo_xmlr<6C>NUexpose_internalsr<73>NUsectsubtitle_xformr<6D><00>U source_linkr<6B>NUrfc_referencesr<73>NUoutput_encodingr<67>Uutf-8r<38>U
source_urlr<EFBFBD>NUinput_encodingr<67>U utf-8-sigr<67>U_disable_configr<67>NU id_prefixr<78>UU tab_widthr<68>KUerror_encodingr<67>Uasciir<69>U_sourcer<65>h!U generatorr<72>NUdump_internalsr<73>NU pep_base_urlr<6C>Uhttp://www.python.org/dev/peps/r<>Uinput_encoding_error_handlerr<72>j<>Uauto_id_prefixr<78>Uidr<64>Udoctitle_xformr<6D><00>Ustrip_elements_with_classesr<73>NU _config_filesr<73>]r<>Ufile_insertion_enabledr<64>KU raw_enabledr<64>KU dump_settingsr<73>NubUsymbol_footnote_startr<74>KUidsr<73>}r<>(hjrhj h j<>h
h<EFBFBD>h j<>hhh.(cdocutils.nodes
target
r<EFBFBD>or<6F>}r<>(hUhhh heh"Utargetr<74>h$}r<>(h&]r<>h,h-h*]r<>Uismodr<64><00>h(]r<>h/]r<>uh1Kh2hh]r<>ubh jih jXhjuUsubstitution_namesr<73>}r<>h"h2h$}r<>(h&]r<>h,]r<>h*]r<>Usourcer<65>h!h(]r<>h/]r<>uU footnotesr]rUrefidsr}rub.