**lastname **lastname smith jones the following three files satisfy the second question the first gives the decorator --it' been augmented to return the original class in optimized mode (- )so attribute accesses don' incur speed hit mostlyit just adds the debug mode test statements and indents the class further to the right""file access py ( xclass decorator with private and public attribute declarations controls external access to attributes stored on an instanceor inherited by it from its classes in any fashion private declares attribute names that cannot be fetched or assigned outside the decorated classand public declares all the names that can caveatsin catches built-ins coded in builtinmixins only (expand me)as codedpublic may be less useful than private for operator overloading ""from access_builtins import builtinsmixin partial settraceme false def trace(*args)if tracemeprint('[join(map(strargs)']'def accesscontrol(failif)def ondecorator(aclass)if not __debug__return aclass elseclass oninstance(builtinsmixin)def __init__(self*args**kargs)self __wrapped aclass(*args**kargsdef __getattr__(selfattr)trace('get:'attrif failif(attr)raise typeerror('private attribute fetchattrelsereturn getattr(self __wrappedattrdef __setattr__(selfattrvalue)trace('set:'attrvalueif attr ='_oninstance__wrapped'self __dict__[attrvalue elif failif(attr)raise typeerror('private attribute changeattrelsesetattr(self __wrappedattrvaluereturn oninstance test your knowledgeanswers