KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/21572/root/usr/lib/python2.4/site-packages/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/21572/root/usr/lib/python2.4/site-packages/snack.pyc
m
`_Kc@sdZdkZdkZdkZdklZlZlZlZlZl	Z	l
Z
dHZdIZdJZ
dKZdLZhdd<ZdfdYZd	efd
YZdefdYZd
efdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZhdei<dei<dei<d ei<d!ei <d"ei!<d#ei"<d$ei#<d%ei$<d&ei%<d'ei&<d(ei'<d)ei(<d*e)d*<Z*x"e*i+D]Z,e,e*e*e,<q,Wd+fd,YZ-d-fd.YZ.d/fd0YZ/d1d1d2Z0d3efd4YZ1d5e.fd6YZ2d7e.fd8YZ3d9e.fd:YZ4d;e4fd<YZ5d=efd>YZ6dMdAdddddBZ8d?d@gdAddddCZ9ddAdDd?d@gddEZ:dFe.fdGYZ;dS(Ns
This module provides the NEWT Windowing toolkit API for Python
This is a lightweight text-mode windowing library, based on slang.

Classes:

 - Widget  
 - Button  
 - CompactButton
 - Checkbox
 - SingleRadioButton
 - Listbox
 - Textbox
 - TextboxReflowed
 - Label
 - Scale
 - Entry
 - Form
 - Grid
 - SnackScreen
 - RadioGroup
 - RadioBar
 - ButtonBar
 - GridFormHelp
 - GridForm
 - CheckboxTree
 - Clistbox

Functions:

 - ListboxChoiceWindow
 - ButtonChoiceWindow
 - EntryWindow
N(s
FLAG_DISABLEDs	FLAGS_SETsFLAGS_RESETsFLAGS_TOGGLEsFD_READsFD_WRITEs	FD_EXCEPTiiitappendtWidgetcBs#tZdZedZdZRS(sBase class for NEWT toolkit

    methods:

     - Widget(self)
     - setCallback(self, obj, data = None) : 
          The callback for when object activated.
          data is passed to obj.
    cCs2|o|ii||n|ii|dS(N(tdatatselftwtsetCallbacktobj(RRR((t)/usr/lib/python2.4/site-packages/snack.pyRBscCs
d|_dS(N(tNoneRR(R((Rt__init__Hs(t__name__t
__module__t__doc__RRR	(((RR8s	tButtoncBstZdZdZRS(sqBasic button class, takes button text as parameter

    method:

     - Button(self, text): returns a button
    cCsti||_dS(N(t_snacktbuttonttextRR(RR((RR	Rs(R
RRR	(((RR
Kst
CompactButtoncBstZdZdZRS(sCompact Button class (less frilly button decoration).

    methods:

     - CompactButton(self,text) : create button, with text.
    cCsti||_dS(N(Rt
compactbuttonRRR(RR((RR	\s(R
RRR	(((RRUstCheckboxcBs>tZdZdZdZdZdZddZRS(sA checkbox.

    methods:
    
      - Checkbox(self, text, isOn = 0) : text, and boolean as to default value
      - setValue(self)                 : set value
      - value(self, value)             : return checkbox value
      - selected(self)                 : returns boolean
      - setFlags(self, flag, sense)    : set flags

      flags:  FLAG_DISABLED, FLAGS_SET, FLAGS_RESET
    cCs
|iiS(N(RRt
checkboxValue(R((RtvaluelscCs|iidjS(Ni(RRR(R((RtselectedoscCs|ii||S(N(RRtcheckboxSetFlagstflagtsense(RRR((RtsetFlagsrscCs|ii|S(N(RRtcheckboxSetValueR(RR((RtsetValuevsicCsti|||_dS(N(RtcheckboxRtisOnRR(RRR((RR	ys(R
RRRRRRR	(((RR_s				tSingleRadioButtoncBs#tZdZdZddZRS(sSingle Radio Button.

    methods:
    
     -  SingleRadioButton(text, group, isOn = 0)  : create button
     -  selected(self)                            : returns bool, whether or not is selected.
    cCs|ii|iijS(N(RRtkeyt
radioValue(R((RRsicCsB|oti||i||_nti|d||_dS(N(tgroupRtradiobuttonRRRRR(RRR"R((RR	s(R
RRRR	(((RR|s	tListboxcBsbtZdZdZdZdZdZdZdZdZ	ddddd	Z
RS(
s"Listbox class.

    methods:

     - Listbox(self,height, scroll = 0l returnExit = 0, width = 0, showCursor = 0)
     - insert(self, text, item, before) : insert element; before = key to item to insert before, or None.
     - delete(self, item)               : delete item from list.
     - replace(self, text,item)         : Replace a given item's text
     - current(self)                    : returns currently selected item
     - setCurrent(self,i tem)           : select current.
     - clear(self)                      : clear listbox
    cCs0|ii|}||i|<||i|<dS(N(RRtlistboxAddItemRR titemtkey2itemtitem2key(RRR&R ((RRs
cCsZ|p|ii|d}n|ii||i|}||i|<||i|<dS(Ni(	tbeforeRRtlistboxInsertItemRR R(R&R'(RRR&R)R ((Rtinserts

cCs6|ii|i||i|i|=|i|=dS(N(RRtlistboxDeleteItemR(R&R'(RR&((RtdeletescCsb|ii||i|}|ii|i||i|i|=||i|<||i|<dS(N(	RRR*RR(R&R R,R'(RRR&R ((Rtreplaces

cCs|i|iiS(N(RR'RtlistboxGetCurrent(R((RtcurrentscCs|ii|i|dS(N(RRtlistboxSetCurrentR(R&(RR&((Rt
setCurrentscCs#h|_h|_|iidS(N(RR'R(RtlistboxClear(R((Rtclears		icCsLti|||||_h|_h|_	|o|ii|ndS(N(Rtlistboxtheighttscrollt
returnExitt
showCursorRRR'R(twidthtlistboxSetWidth(RR6R7R8R:R9((RR	s
		(R
RRRR+R-R.R0R2R4R	(((RR$s							tTextboxcBs&tZdZdZdddZRS(sTextbox, container for text.

    methods:

     - Textbox(self, width, height, scroll = 0, wrap = 0): scroll, wrap are flags
                                   include scroll bars, or text wrap.
     - setText(text) : set text.
    cCs|ii|dS(N(RRttextboxTextR(RR((RtsetTextsicCs"ti||||||_dS(N(	RttextboxR:R6RR7twrapRR(RR:R6RR7R@((RR	s(R
RRR>R	(((RR<s	tTextboxReflowedcBstZddddZRS(Nii
icCsrt||||\}}}|djo*||joti	||||dnti	||||ddS(Niii(treflowRR:tflexDowntflexUptnewtextR6t	maxHeightR<R	R(RR:RRCRDRFR6RE((RR	s(R
RR	(((RRAstLabelcBs tZdZdZdZRS(s|A Label (simple text).

    methods:

     - Label(self,text)   : create label
     - setText(self,text) : change text.
    cCs|ii|dS(N(RRt	labelTextR(RR((RR>scCsti||_dS(N(RtlabelRRR(RR((RR	s(R
RRR>R	(((RRGs	tScalecBs tZdZdZdZRS(sA Scale (progress bar).

    methods:

     - Scale(self,width, total) : create scale; width: size on screen, fullamount: integer.
     - set(self,amount)         : set amount to integer.
    cCs|ii|dS(N(RRtscaleSettamount(RRL((RtsetscCsti|||_dS(N(RtscaleR:ttotalRR(RR:RO((RR	s(R
RRRMR	(((RRJs	tEntrycBsAtZdZdZdZdZddddddZRS(sEntry widget.

    methods:

     - Entry(self, width, text = "", hidden = 0, password = 0, scroll = 1, returnExit = 0)
          constructor. hidden doesn't show text, password stars it out,
          scroll includes scroll bars;
          if returnExit is set, return from Form when exiting this element, else
           proceed to next entry widget.
     - value(self): return value.
     - set(text) : set the text
     - setFlags (flag, sense) : flags can be FLAG_DISABLED, FLAGS_SET, FLAGS_RESET, FLAGS_TOGGLE
    cCs
|iiS(N(RRt
entryValue(R((RR
scCs|ii|S(N(RRt
entrySetValueR(RR((RRM
scCs|ii||S(N(RRt
entrySetFlagsRR(RRR((RRstiicCs%ti|||||||_	dS(N(
RtentryR:RthiddentpasswordR7R8RR(RR:RRVRWR7R8((RR	s(R
RRRRMRR	(((RRPs

			tF1tF2tF3tF4tF5tF6tF7tF8tF9tF10tF11tF12tESCt tFormcBsYtZdZdZdZdZdZedZdZ	dZ
dZRS(	s Base Form class, from which Grid, etc. inherit

    methods:

     - Form(self, helpArg = None) : constructor. 
     - addHotKey(self, keyname) : keynames of form "F1" through "F12", "ESC"
     - add(self, widget) : Add a widget
     - run(self): run a  form, expecting input
     - draw(self): draw form.
     - setTimer(self, timer) : add a timer
     - watchFile(self, file, flags) : watch a named file
     - setCurrent (self, co): Set a given widget as the current focus
    cCs|iit|dS(N(RRt	addhotkeythotkeystkeyname(RRi((Rt	addHotKey0scCs|iido+x(|iiD]}|i|q#Wn|iido%x_|iD]}|i
|q[Wn>|iido*||i|i	i<|i	i
|i	SndS(NRhtgridmembersR(
twidgett__dict__thas_keyRhtkeysR RRjRkRtaddttransR(RRlRR ((RRp3s
cCss|ii\}}|tijo|i|Sn8|tijodSn |ti	jo|i
|Snt|S(NtTIMER(RRtruntwhattwhichRtFORM_EXIT_WIDGETRqtFORM_EXIT_TIMERtFORM_EXIT_FDREADYtfilemapRh(RRtRu((RRs@scCs|iidS(N(RRtdrawR(R((RRzKs
cCs1h|_h|_ti||_||_dS(N(RRqRyRtformthelpArgR(RR|((RR	Os		cCs|ii|idS(N(RRt
setcurrenttco(RR~((RR2VscCs|ii|dS(N(RRtsettimerttimer(RR((RtsetTimerYscCs0||i|i<|ii|i|dS(N(tfileRRytfilenoRtwatchfdtflags(RRR((Rt	watchFile\s(R
RRRjRpRsRzRR	R2RR(((RRf"s
		
				tGridcBs>tZdZdZddddddddZdZRS(syGrid class.

    methods:

     - place(self,x,y): Return what is placed at (x,y)
     - setField(self, what, col, row, padding = (0, 0, 0, 0),
                anchorLeft = 0, anchorTop = 0, anchorRight = 0,
                anchorBottom = 0, growx = 0, growy = 0):
                used to add widget 'what' to grid.
     - Grid(self, *args): eg. g = Grid(2,3) for 2x3 grid
    cCs|ii||S(N(Rtgtplacetxty(RRR((RRlsic
Cs|ii|d}|o
ti}n|o
ti	}n|o|tiB}n|o|ti
B}nd}|	o
ti}n|
o|tiB}n|iido&|ii|||i|||Sn |ii|||i||SdS(NiR(RRkRRttanchorFlagst
anchorLeftRtANCHOR_LEFTtanchorRighttANCHOR_RIGHTt	anchorTopt
ANCHOR_TOPtanchorBottomt
ANCHOR_BOTTOMt	gridFlagstgrowxt
GRID_GROWXtgrowyt
GRID_GROWYRmRnRtsetfieldtcoltrowtpaddingR(
RRtRRRRRRRRRRR((RtsetFieldos&


cGs"tti||_g|_dS(N(tapplyRtgridtargsRRRk(RR((RR	s(iiii(R
RRRRR	(((RR`s	tSnackScreencBstZdZdZdZdZdZdZdZe	dZ
dZd	Zd
Z
dZdZe	e	d
ZdZdZRS(sA Screen;

    methods:

    - Screen(self) : constructor
    - finish(self)
    - resume(self)
    - suspend(self)
    - doHelpCallback(self,arg) call callback with arg
    - helpCallback(self,cb): Set help callback
    - suspendcallback(self,cb, data=None) : set callback. data=data to pass to cb.
    - openWindow(self,left, top, width, height, title): Open a window.
    - pushHelpLine(self,text): put help line on screen. Returns current help line if text=None
    cCs3titi\|_|_|iddS(N(RtinittsizeRR:R6tpushHelpLineR(R((RR	s
cCs
tiS(N(Rtfinish(R((RRscCstidS(N(Rtresume(R((RRscCstidS(N(Rtsuspend(R((RRscCs|i||dS(N(RthelpCbtarg(RR((RtdoHelpCallbackscCs||_ti|iS(N(tcbRRRthelpcallbackR(RR((RthelpCallbacks	cCs(|oti||Snti|S(N(RRtsuspendcallbackR(RRR((RtsuspendCallbackscCsti|||||S(N(Rt
openwindowtleftttopR:R6ttitle(RRRR:R6R((Rt
openWindowscCs)|ptidSnti|SdS(Ns	*default*(RRtpushhelpline(RR((RRscCs
tiS(N(Rtpophelpline(R((RtpopHelpLinescCsti|||S(N(RtdrawroottextRRR(RRRR((RtdrawRootTextscCsti|||S(N(RtcenteredwindowR:R6R(RR:R6R((RtcenteredWindowscCs>|o$|oti|i|||Snti|i|S(N(RRRtgridwrappedwindowRRR(RRRRR((RtgridWrappedWindowscCs
tiS(N(Rt	popwindow(R((Rt	popWindowscCs
tiS(N(Rtrefresh(R((RRs(R
RRR	RRRRRRRRRRRRRRR(((RRs 												icCsti||||S(sR returns a tuple of the wrapped text, the actual width, and the actual height
    N(RRBRR:RCRD(RR:RCRD((RRBst
RadioGroupcBs,tZdZdZedZdZRS(s Combo widget: Group of Radio buttons

    methods:

     - RadioGroup(self): constructor.
     - add(self,title, value, default = None): add a button. Returns button.
     - getSelection(self) : returns value of selected button | None    
    cCsd|_g|_dS(N(RRtprevt
buttonlist(R((RR	s	cCsZ|io|djo
d}nt||i|}||_|ii||f|S(Ni(
RRtdefaultRRRtbRRR(RRRRR((RRps
	cCs3x,|iD]!\}}|io|Sq
q
WdS(N(RRRRRR(RRR((RtgetSelections


(R
RRR	RRpR(((RRs	
tRadioBarcBs tZdZdZdZRS(s Bar of Radio buttons, based on Grid.

    methods:

    - RadioBar(self, screen, buttonlist) : constructor.
    - getSelection(self): return value of selected button 
    cCsg|_d|_t|_ti|dt|xq|D]i\}}}|ii|||}|ii||f|i|d|idd|id|_q>WdS(NiiR(RtlistR&RR"RR	tlenRRRRRpRRR(RtscreenRRRRR((RR	s		cCs
|iiS(N(RR"R(R((RR
s(R
RRR	R(((RRs	t	ButtonBarcBs#tZdZddZdZRS(s Bar of buttons, based on grid.

    methods:

     - ButtonBar(screen, buttonlist,buttonlist, compact = 0):
     - buttonPressed(self, result):  Takes the widget returned by Form.run and looks to see
                     if it was one of the widgets in the ButtonBar.
    ic		Csg|_h|_d|_ti|t|dx|D]}t	|t
ijo|}t
i|}n@t|djo|\}}n|\}}}||i|<|ot|}n
t|}|ii||f|i||idd|id|_q;WdS(Niii(iiii(RRRhR&RR	RRtblistttypettypest
StringTypeRtstringtlowerRthotkeytcompactRRR
RR(	RRRRRRRRR((RR	s&			
cCsU|ii|o|i|Snx,|iD]!\}}||jo|Sq,q,WdS(N(RRhRntresultRRRR(RRRR((Rt
buttonPressed3s

(R
RRR	R(((RRstGridFormHelpcBstZdZdZddddddddZeedZdZdZeedZ	eedZ
d	Zd
ZdZ
RS(
s= Subclass of Grid, for the help form text.

    methods:

     - GridFormHelp(self, screen, title, help, *args) :
     - add (self, widget, col, row, padding = (0, 0, 0, 0),
            anchorLeft = 0, anchorTop = 0, anchorRight = 0,
            anchorBottom = 0, growx = 0, growy = 0):
     - runOnce(self, x = None, y = None):  pop up the help window
     - addHotKey(self, keyname):
     - setTimer(self, keyname):
     - create(self, x = None, y = None):
     - run(self, x = None, y = None):
     - draw(self):
     - runPopup(self):
     - setCurrent (self, co):
    cGsf||_||_t||_g|_d|_t|}|g|d*t
tit
|dS(Ni(RRRRfthelpR{t	childListtform_createdRRRRR	ttuple(RRRRR((RR	Os				
icCs<|i|||||||||	|

|ii
|dS(N(RRRlRRRRRRRRRRR(RRlRRRRRRRRR((RRpYs	
cCs#|i||}|ii|S(N(RRsRRRRR(RRRR((RtrunOnceas
cCs|ii|dS(N(RR{RjRi(RRi((RRjfscCs|ii|dS(N(RR{RRi(RRi((RRiscCsk|ip]|iddx!|iD]}|ii|q$W|ii||i	||d|_ndS(Ni(RRRRtchildR{RpRRRRR(RRRR((Rtcreatels

cCs|i|||iiS(N(RRRRR{Rs(RRR((RRstscCs|i|iiS(N(RRR{Rz(R((RRzxs
cCs@|i|ii||i|ii}|ii|S(N(	RRRRRR{RsRR(RR((RtrunPopup|s


cCs|ii|dS(N(RR{R2R~(RR~((RR2s(iiii(R
RRR	RpRRRjRRRsRzRR2(((RR=s	
				tGridFormcBstZdZdZRS(sh GridForm class (extends GridFormHelp):

    methods:

     - GridForm(self, screen, title, *args):
    cGs*|||df|}tti|dS(N(	RRRRRtmyargsRRR	(RRRRR((RR	s(R
RRR	(((RRstCheckboxTreecBsztZdZeddZeddZdZdedddZdZdZ	dZ
d	d
ZdZRS(s CheckboxTree combo widget,

    methods:

     - CheckboxTree(self, height, scroll = 0, width = None, hide_checkbox = 0, unselectable = 0)
                    constructor.
     - append(self, text, item = None, selected = 0):
     - addItem(self, text, path, item = None, selected = 0):
     - getCurrent(self):
     - getSelection(self):
     - setEntry(self, item, text):
     - setCurrent(self, item):
     - setEntryValue(self, item, selected = 1):
     - getEntryValue(self, item):
    icCs!|i|tdf||dS(NR(RtaddItemRt	snackArgsR&R(RRR&R((RRscCsM|djo
|}n|ii|||}||i	|<||i
|<dS(N(R&RRRRtcheckboxtreeAddItemtpathRR R'R((RRRR&RR ((RRs



cCs|ii}|i|S(N(RRtcheckboxtreeGetCurrenttcurrR'(RR((Rt
getCurrentscCsLti|||||_h|_h|_	|o|ii|ndS(N(RtcheckboxtreeR6R7t
hide_checkboxtunselectableRRR'R(R:tcheckboxtreeSetWidth(RR6R7R:RR((RR	s
		cCs>g}|ii}x"|D]}|i|i|qW|S(N(t	selectionRRtcheckboxtreeGetSelectionRR RR'(RRRR ((RRscCs|ii|i||dS(N(RRtcheckboxtreeSetEntryR(R&R(RR&R((RtsetEntryscCs|ii|i|dS(N(RRtcheckboxtreeSetCurrentR(R&(RR&((RR2sicCs|ii|i||dS(N(RRtcheckboxtreeSetEntryValueR(R&R(RR&R((Rt
setEntryValuescCs|ii|i|S(N(RRtcheckboxtreeGetEntryValueR(R&(RR&((Rt
getEntryValues(
R
RRRRRRR	RRR2RR(((RRs				tOktCanceli(c
	Cs|djot|}nt||}t||}t|d|dd}d}
x|D]}t|tijo|\}}n
|}|
}||
jo
|}n||jo
|}n|i|||
d}
q`W|d
jo|i|nt|||	dd}|i|dd|i|dddd|i|ddd	d|i}
|i|
|i fS(s
    - ListboxChoiceWindow(screen, title, text, items, 
            buttons = ('Ok', 'Cancel'), 
            width = 40, scroll = 0, height = -1, default = None,
            help = None):
    iR7R8iiiRiRN(iiii(!R6RtitemsRRtbuttonstbbRAR:RttR$R7tltcountR&RRt	TupleTypeR RRRR2RRRRRpRtrcRR0(RRRRRR:R7R6RRRRR RRRR&R((RtListboxChoiceWindows6	





c	Cst||}t||d|id}
t	|||dd}	|	i
|
dddd	|	i
|dddd|i|	i||S(
s
     - ButtonChoiceWindow(screen, title, text, 
               buttons = [ 'Ok', 'Cancel' ], 
               width = 40, x = None, y = None, help = None):
    RFiiiiRRN(iiii(RRRRRAR:RR6RRRRRRpRRRR(RRRRR:RRRRRR((RtButtonChoiceWindowsic	
Cst||}t||}d}
x|D]}|
d}
q+Wtd|
}d}
g}x|D]}t|tijo9|\}}t|tijot||}qn
t|}|it|d|
dd	dd|i|d|
dd|
d}
|i|qaWt|||dd}|i|dddd
|i|dddd|i|dddd|i}	g}
d}
x/|D]'}|
i||
i |
d}
qW|i!|	t"|
fS(s
    EntryWindow(screen, title, text, prompts, allowCancel = 1, width = 40,
        entryWidth = 20, buttons = [ 'Ok', 'Cancel' ], help = None):
    iiiRRiRN(iiii(iiii(iiii(#RRRRRAR:RRRtpromptstnRtsgt	entryListRRRtetStringTypesRPt
entryWidthRRGRRRRRRpRRtentryValuesRRR(RRRRtallowCancelR:R	RRRR
RRRRRRRR((RtEntryWindowsB%
tCListboxc	BstZdZddddeeeddZeddZedZedZdZedZ	d	Z
d
ZdZRS(spClistbox convenience class.

    methods:

     - Clistbox(self, height, cols, cols_widths, scroll = 0)       : constructor
     - colFormText(self, col_text, align = None, adjust_width = 0) : column text.
     - append(self, col_text, item, col_text_align = None)         :
     - insert(self, col_text, item, before, col_text_align = None)
     - delete(self, item)
     - replace(self, col_text, item, col_text_align = None)
     - current(self) : returns current item
     - setCurrent(self, item): sets an item as current
     - clear(self): clear the listbox
     
     Alignments may be LEFT, RIGHT, CENTER, None
    iicCs||_||_||_||_|	djo`ti|ddd}
|i
|	|
d|}t||_|i|iddddnti|ddd}
t|||||_|i|id|
dddS(Niitadjust_widthiRR(tcolsRt
col_widthstcol_padtcol_text_alignt
col_labelsRRR	tbox_ytcolFormTexttcol_label_alignRtlstrRGRIRR$R6R7R8R:R5(RR6RRR7R8R:RRRRRRR((RR	Cs	
		
 cCsd}d}
t|}xy||ijoh||jo[||}ti	|}	|i||	jo-|o|	|i|<q||i| }n|i|ti	|}|djo|djo
t}n||}|tjo|d|}n|tjo&d|d|d|dd}n|tjod||}qOn||djod|i}nd}|
||}
|d}qW|
S(NiRTReii(titstrRtcol_texttc_lenRRtcstrRtwstrlentcstrlenRRtdeltatalignRtLEFTtatCENTERtRIGHTRtpstr(RRR RR"RR%RRRRR((RR^s8






&
cCsC|djo
|i}n|i||}|ii||dS(N(	RRRRRRR5RR&(RRR&RR((RRs

cCsF|djo
|i}n|i||}|ii|||dS(N(
RRRRRRR5R+R&R)(RRR&R)RR((RR+s

cCs|ii|dS(N(RR5R-R&(RR&((RR-scCsC|djo
|i}n|i||}|ii||dS(N(	RRRRRRR5R.R&(RRR&RR((RR.s

cCs
|iiS(N(RR5R0(R((RR0scCs|ii|dS(N(RR5R2R&(RR&((RR2scCs|iidS(N(RR5R4(R((RR4s(
R
RRRR	RRR+R-R.R0R2R4(((RR
2s!)			(ii(ii(ii(ii(ii(RR(<RRRRt
FLAG_DISABLEDt	FLAGS_SETtFLAGS_RESETtFLAGS_TOGGLEtFD_READtFD_WRITEt	FD_EXCEPTR!tDOWNR#tUPR$RRR
RRRR$R<RARGRJRPtKEY_F1tKEY_F2tKEY_F3tKEY_F4tKEY_F5tKEY_F6tKEY_F7tKEY_F8tKEY_F9tKEY_F10tKEY_F11tKEY_F12tKEY_ESCtordRhRoRRfRRRBRRRRRRRRRRR
(+RR,RRRGR-RJRRRR(R'R
RRR#RfRRRRRR+R!R&RR
RRRARPRR*RBR$R)R.RhRRRR$R<((Rt?(sN			1

9	
>.G*I8+.

Anon7 - 2021