phpDocumentor Converters
PDFdefault
[ class tree: Converters ] [ index: Converters ] [ all elements ]

Class: PDFdefaultConverter

Source Location: /phpDocumentor/Converters/PDF/default/PDFdefaultConverter.inc

Class PDFdefaultConverter

Inherited Properties, Constants, and Methods
Inherited Properties Inherited Methods Inherited Constants

Inherited From Converter

Converter::$all_packages
Converter::$class
Converter::$classes
Converter::$class_contents
Converter::$class_data
Converter::$class_elements
Converter::$curfile
Converter::$curpage
Converter::$define_elements
Converter::$elements
Converter::$function_elements
Converter::$global_elements
Converter::$highlightingSource
Converter::$package
Converter::$packagecategories
Converter::$package_elements
Converter::$package_output
Converter::$package_parents
Converter::$page
Converter::$page_contents
Converter::$page_data
Converter::$page_elements
Converter::$parseprivate
Converter::$path
Converter::$pkg_elements
Converter::$processSpecialRoots
Converter::$quietmode
Converter::$sort_page_contents_by_type
Converter::$sourcePaths
Converter::$subpackage
Converter::$targetDir
Converter::$templateDir
Converter::$templateName
Converter::$template_options
Converter::$title
Converter::$todoList

Inherited From Converter

Converter::Converter()
Initialize Converter data structures
Converter::AttrToString()
Convert the attribute of a Tutorial docbook tag's attribute list
Converter::Bolden()
Used to convert the contents of <b> in a docblock
Converter::Br()
Used to convert <br> in a docblock
Converter::checkState()
Compare parserStringWithInlineTags::Convert() cache state to $state
Converter::cleanup()
Finish up parsing/cleanup directories
Converter::Convert()
Convert all elements to output format
Converter::convertClass()
Default Class Handler
Converter::convertConst()
Converts class constants for template output.
Converter::convertDefine()
Converts defines for template output
Converter::ConvertErrorLog()
Convert the phpDocumentor parsing/conversion error log
Converter::convertFunction()
Converts function for template output
Converter::convertGlobal()
Converts global variables for template output
Converter::convertInclude()
Converts includes for template output
Converter::convertMethod()
Converts method for template output
Converter::convertPage()
Default Page Handler
Converter::ConvertTitle()
Convert the title of a Tutorial docbook tag section
Converter::ConvertTodoList()
Convert the list of all @todo tags
Converter::convertTutorial()
Default Tutorial Handler
Converter::convertVar()
Converts class variables for template output.
Converter::Convert_RIC()
Convert README/INSTALL/CHANGELOG file contents to output format
Converter::copyFile()
Copies a file from the template directory to the target directory
Converter::createParentDir()
Recursively creates all subdirectories that don't exist in the $dir path
Converter::EncloseList()
Used to convert the contents of <ol> or <ul> in a docblock
Converter::EncloseParagraph()
Used to enclose a paragraph in a docblock
Converter::endClass()
Called by walk() while converting, when the last class element has been parsed.
Converter::endPage()
Called by walk() while converting, when the last procedural page element has been parsed.
Converter::exampleProgramExample()
Used to convert the {@example} inline tag in a docblock.
Converter::flushHighlightCache()
Return the close text for the current token
Converter::formatIndex()
Called by walk() while converting.
Converter::formatLeftIndex()
Called by walk() while converting.
Converter::formatPkgIndex()
Called by walk() while converting.
Converter::formatTutorialTOC()
Creates a table of contents for a {@toc} inline tag in a tutorial
Converter::generateChildClassList()
returns a list of child classes
Converter::generateFormattedClassTree()
returns an array containing the class inheritance tree from the root object to the class.
Converter::getClassesOnPage()
gets a list of all classes declared on a procedural page represented by
Converter::getClassLink()
return false or a classLink to $expr
Converter::getConstLink()
return false or a constLink to $expr in $class
Converter::getConverterDir()
Get the absolute path to the converter's base directory
Converter::getCurrentPageLink()
Converter::getCurrentPageURL()
Return the path to the current
Converter::getDefineLink()
return false or a defineLink to $expr
Converter::getFileSourceName()
Translate the path info into a unique file name for the highlighted source code.
Converter::getFileSourcePath()
Return the fixed path to the source-code file folder.
Converter::getFormattedConflicts()
Converter::getFormattedDescMethods()
Get a list of methods in child classes that override this method
Converter::getFormattedDescVars()
Get a list of vars in child classes that override this var
Converter::getFormattedImplements()
returns an array containing the class inheritance tree from the root object to the class.
Converter::getFormattedInheritedConsts()
Return template-enabled list of inherited class constants
Converter::getFormattedInheritedMethods()
Return template-enabled list of inherited methods
Converter::getFormattedInheritedVars()
Return template-enabled list of inherited variables
Converter::getFormattedMethodImplements()
Get the method this method(s) implemented from an interface, if any
Converter::getFormattedOverrides()
Get the method this method overrides, if any
Converter::getFunctionLink()
return false or a functionLink to $expr
Converter::getGlobalLink()
return false or a globalLink to $expr
Converter::getGlobalValue()
Parse a global variable's default value for class initialization.
Converter::getHighlightState()
Converter::getId()
take abstractLink descendant and text $eltext and return a
Converter::getIncludeValue()
Parse an include's file to see if it is a file documented in this project
Converter::getLink()
The meat of the @see tag and inline {@link} tag
Converter::getMethodLink()
return false or a methodLink to $expr in $class
Converter::getPageLink()
return false or a pageLink to $expr
Converter::getSortedClassTreeFromClass()
Return a tree of all classes that extend this class
Converter::getSourceLink()
Converter::getState()
Return parserStringWithInlineTags::Convert() cache state
Converter::getTutorialId()
Return a converter-specific id to distinguish tutorials and their sections
Converter::getTutorialLink()
The meat of the @tutorial tag and inline {@tutorial} tag
Converter::getTutorialTree()
Get a tree structure representing the hierarchy of tutorials
Converter::getVarLink()
return false or a varLink to $expr in $class
Converter::hasSourceCode()
Determine whether an element's file has generated source code, used for linking to line numbers of source.
Converter::hasTutorial()
Converter::highlightDocBlockSource()
Used to allow converters to format the source code of DocBlocks the way they'd like.
Converter::highlightSource()
Used to allow converters to format the source code the way they'd like.
Converter::highlightTutorialSource()
Used to allow converters to format the source code of Tutorial XML the way they'd like.
Converter::Italicize()
Used to convert the contents of <i> in a docblock
Converter::Kbdize()
Used to convert the contents of <kbd> in a docblock
Converter::ListItem()
Used to convert the contents of <li> in a docblock
Converter::newSmarty()
Return a Smarty template object to operate with
Converter::Output()
do all necessary output
Converter::postProcess()
This version does nothing
Converter::prepareDocBlock()
convert the element's DocBlock for output
Converter::PreserveWhiteSpace()
Used to convert the contents of <pre> in a docblock
Converter::ProgramExample()
Used to convert the <code> tag in a docblock
Converter::returnLink()
take URL $link and text $text and return a link in the format needed for the Converter
Converter::returnSee()
take abstractLink descendant and text $eltext and return a link
Converter::Sampize()
Used to convert the contents of <samp> in a docblock
Converter::setSourcePaths()
Mark a file as having had source code highlighted
Converter::setTargetDir()
Sets the output directory for generated documentation
Converter::setTemplateBase()
Set the template directory with a different template base directory
Converter::setTemplateDir()
sets the template directory based on the $outputformat and $name
Converter::sortPageContentsByElementType()
sorts $page_contents by element type as well as alphabetically
Converter::sourceLine()
Return a line of highlighted source code with formatted line number
Converter::startHighlight()
Initialize highlight caching
Converter::TranslateEntity()
Used to translate an XML DocBook entity like &rdquo; from a tutorial by reading the options.ini file for the template.
Converter::TranslateTag()
Used to translate an XML DocBook tag from a tutorial by reading the options.ini file for the template.
Converter::TutorialExample()
Converter::type_adjust()
Called by parserReturnTag::Convert() to allow converters to change type names to desired formatting
Converter::unmangle()
Called by parserSourceInlineTag::stringConvert() to allow converters to format the source code the way they'd like.
Converter::vardump_tree()
Debugging function for dumping $tutorial_tree
Converter::Varize()
Used to convert the contents of <var> in a docblock
Converter::walk()
called by phpDocumentor_IntermediateParser::Convert() to traverse the array of pages and their elements, converting them to the output format
Converter::walk_everything()
walk over elements by package rather than page
Converter::writeExample()
Write out the formatted source code for an example php file
Converter::writeFile()
Writes a file to target dir
Converter::writeSource()
Write out the formatted source code for a php file
Converter::_rmdir()
Completely remove a directory and its contents
Converter::_setHighlightCache()
Converter::_tutorial_path()
Returns the path to this tutorial as a string

[ Top ]
Property Summary
mixed   $classpackage_pagenums  
mixed   $curclasspackage  
mixed   $curpagepackage  
mixed   $leftindex  
string   $name  
string   $outputformat  
mixed   $pagepackage_pagenums  
Cezpdf   $pdf  
mixed   $ric_set  
mixed   $smarty_dir  
boolean   $sort_absolutely_everything   default PDF Converter wants elements sorted by type as well as alphabetically
array   $_sourcecode   Source files for appendix C are stored here

[ Top ]
Method Summary
PDFdefaultConverter   PDFdefaultConverter()  
void   convertClass()  
void   convertConst()  
void   convertDefine()  
void   convertDocBlock()  
void   convertFunction()  
void   convertGlobal()  
void   convertInclude()  
void   convertMethod()  
void   convertPackagepage()  
void   convertPage()  
void   convertParams()  
void   convertTutorial()  
void   convertVar()  
void   Convert_RIC()   Convert README/INSTALL/CHANGELOG file contents to output format
void   generateFormattedClassTrees()   returns a template-enabled array of class trees
void   getCData()  
mixed   getClassLink()  
mixed   getConstLink()  
mixed   getDefineLink()  
void   getExampleLink()  
void   getFileSourceName()  
mixed   getFunctionLink()  
mixed   getGlobalLink()  
void   getGlobalValue()  
mixed   getMethodLink()  
mixed   getPageLink()  
void   getPageName()  
string   getRootTree()   return formatted class tree for the Class Trees page
string   getSourceAnchor()   Retrieve a Converter-specific anchor to a segment of a source code file parsed via a @filesource tag.
void   getSourceLink()  
1   getState()  
void   getTutorialId()  
mixed   getVarLink()  
void   mystrnatcasecmp()  
void   Output()   calls Cezpdf::ezOutput() and writes documentation.pdf to targetDir
void   postProcess()  
string   returnLink()  
void   returnSee()   Returns a bookmark using Cezpdf 009
void   setTemplateDir()  
string   TranslateTag()   Used to translate an XML DocBook tag from a tutorial by reading the options.ini file for the template.
void   unmangle()  
void   writeExample()  
void   writeSource()  

[ Top ]
Properties
mixed   $classpackage_pagenums = array() [line 65]

[ Top ]
mixed   $curclasspackage = false [line 71]

[ Top ]
mixed   $curpagepackage = false [line 70]

[ Top ]
mixed   $leftindex = array('classes' => false, 'pages' => false, 'functions' => false, 'defines' => false, 'globals' => false) [line 63]

Redefinition of:
Converter::$leftindex
Controls which of the one-element-only indexes are generated.

[ Top ]
string   $name = 'default' [line 69]

[ Top ]
string   $outputformat = 'PDF' [line 67]

Redefinition of:
Converter::$outputformat
output format of this converter

[ Top ]
mixed   $pagepackage_pagenums = array() [line 64]

[ Top ]
Cezpdf   $pdf = false [line 76]

[ Top ]
mixed   $ric_set = array() [line 77]

[ Top ]
mixed   $smarty_dir [line 72]

Redefinition of:
Converter::$smarty_dir
Directory that the smarty templates are in

[ Top ]
boolean   $sort_absolutely_everything = true [line 62]

default PDF Converter wants elements sorted by type as well as alphabetically

API Tags:
See:  Converter::$sort_page_contents_by_type


Redefinition of:
Converter::$sort_absolutely_everything
This is used if the content must be passed in the order it should be read, i.e. by package, procedural then classes

[ Top ]
array   $_sourcecode [line 84]

Source files for appendix C are stored here

Format: array(array(package => packagename, code => array(highlightedsource code 1, ...)))


[ Top ]
Methods
Constructor PDFdefaultConverter  [line 88]

  PDFdefaultConverter PDFdefaultConverter( &$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $templateDir, $title  )

Parameters:
   &$allp: 
   &$packp: 
   &$classes: 
   &$procpages: 
   $po: 
   $pp: 
   $qm: 
   $targetDir: 
   $templateDir: 
   $title: 

API Tags:
See:  Converter::Converter()


[ Top ]
convertClass  [line 455]

  void convertClass( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertClass()
Default Class Handler

[ Top ]
convertConst  [line 433]

  void convertConst( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertConst()
Converts class constants for template output.

[ Top ]
convertDefine  [line 535]

  void convertDefine( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertDefine()
Converts defines for template output

[ Top ]
convertDocBlock  [line 249]

  void convertDocBlock( &$element  )

Parameters:
   &$element: 


[ Top ]
convertFunction  [line 502]

  void convertFunction( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertFunction()
Converts function for template output

[ Top ]
convertGlobal  [line 343]

  void convertGlobal( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertGlobal()
Converts global variables for template output

[ Top ]
convertInclude  [line 488]

  void convertInclude( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertInclude()
Converts includes for template output

[ Top ]
convertMethod  [line 370]

  void convertMethod( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertMethod()
Converts method for template output

[ Top ]
convertPackagepage  [line 632]

  void convertPackagepage( &$element  )

Parameters:
   &$element: 

API Tags:
Deprecated:  html package pages just don't work with PDF, use phpDocumentor Tutorials


[ Top ]
convertPage  [line 556]

  void convertPage( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertPage()
Default Page Handler

[ Top ]
convertParams  [line 325]

  void convertParams( &$element  )

Parameters:
   &$element: 


[ Top ]
convertTutorial  [line 639]

  void convertTutorial( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertTutorial()
Default Tutorial Handler

[ Top ]
convertVar  [line 410]

  void convertVar( &$element  )

Parameters:
   &$element: 


Redefinition of:
Converter::convertVar()
Converts class variables for template output.

[ Top ]
Convert_RIC  [line 244]

  void Convert_RIC( README|INSTALL|CHANGELOG $name, string $contents  )

Convert README/INSTALL/CHANGELOG file contents to output format

Parameters:
README|INSTALL|CHANGELOG   $name: 
string   $contents:  contents of the file


Redefinition of:
Converter::Convert_RIC()
Convert README/INSTALL/CHANGELOG file contents to output format

[ Top ]
generateFormattedClassTrees  [line 659]

  void generateFormattedClassTrees( string $package  )

returns a template-enabled array of class trees

Parameters:
string   $package:  package to generate a class tree for

API Tags:
See:  $roots, PDFdefaultConverter::getRootTree()


[ Top ]
getCData  [line 624]

  void getCData( $value  )

Parameters:
   $value: 


[ Top ]
getClassLink  [line 837]

  mixed getClassLink( string $expr, string $package, [string $file = false], [ $text = false]  )

Parameters:
string   $expr:  name of class
string   $package:  package name
string   $file:  full path to look in (used in index generation)
   $text: 

API Tags:
Return:  false if not found, or an html a link to the class's documentation
See:  Converter::getClassLink()


Redefinition of:
Converter::getClassLink()
return false or a classLink to $expr

[ Top ]
getConstLink  [line 947]

  mixed getConstLink( string $expr, string $class, string $package, [string $file = false], [boolean $text = false], boolean 5  )

Parameters:
boolean   5:  return just the URL, or enclose it in an html a tag
string   $expr:  name of class constant
string   $class:  class containing class constant
string   $package:  package name
string   $file:  full path to look in (used in index generation)
boolean   $text:  deprecated

API Tags:
Return:  false if not found, or an html a link to the var's documentation
See:  Converter::getConstLink()


Redefinition of:
Converter::getConstLink()
return false or a constLink to $expr in $class

[ Top ]
getDefineLink  [line 867]

  mixed getDefineLink( string $expr, string $package, [string $file = false], [boolean $text = false]  )

Parameters:
string   $expr:  name of define
string   $package:  package name
string   $file:  full path to look in (used in index generation)
boolean   $text:  deprecated

API Tags:
Return:  false if not found, or an html a link to the define's documentation
See:  Converter::getDefineLink()


Redefinition of:
Converter::getDefineLink()
return false or a defineLink to $expr

[ Top ]
getExampleLink  [line 140]

  void getExampleLink( $path, $title  )

Parameters:
   $path: 
   $title: 


[ Top ]
getFileSourceName  [line 152]

  void getFileSourceName( $path, [ $anchor = '']  )

Parameters:
   $path: 
   $anchor: 


Redefinition of:
Converter::getFileSourceName()
Translate the path info into a unique file name for the highlighted source code.

[ Top ]
getFunctionLink  [line 852]

  mixed getFunctionLink( string $expr, string $package, [string $file = false], [boolean $text = false]  )

Parameters:
string   $expr:  name of function
string   $package:  package name
string   $file:  full path to look in (used in index generation)
boolean   $text:  deprecated

API Tags:
Return:  false if not found, or an html a link to the function's documentation
See:  Converter::getFunctionLink()


Redefinition of:
Converter::getFunctionLink()
return false or a functionLink to $expr

[ Top ]
getGlobalLink  [line 882]

  mixed getGlobalLink( string $expr, string $package, [string $file = false], [boolean $text = false]  )

Parameters:
string   $expr:  name of global variable
string   $package:  package name
string   $file:  full path to look in (used in index generation)
boolean   $text:  deprecated

API Tags:
Return:  false if not found, or an html a link to the global variable's documentation
See:  Converter::getGlobalLink()


Redefinition of:
Converter::getGlobalLink()
return false or a globalLink to $expr

[ Top ]
getGlobalValue  [line 365]

  void getGlobalValue( $value  )

Parameters:
   $value: 


Redefinition of:
Converter::getGlobalValue()
Parse a global variable's default value for class initialization.

[ Top ]
getMethodLink  [line 913]

  mixed getMethodLink( string $expr, string $class, string $package, [string $file = false], [boolean $text = false]  )

Parameters:
string   $expr:  name of method
string   $class:  class containing method
string   $package:  package name
string   $file:  full path to look in (used in index generation)
boolean   $text:  deprecated

API Tags:
Return:  false if not found, or an html a link to the method's documentation
See:  Converter::getMethodLink()


Redefinition of:
Converter::getMethodLink()
return false or a methodLink to $expr in $class

[ Top ]
getPageLink  [line 897]

  mixed getPageLink( string $expr, string $package, [string $path = false], [boolean $text = false]  )

Parameters:
string   $expr:  name of procedural page
string   $package:  package name
string   $path:  full path to look in (used in index generation)
boolean   $text:  deprecated

API Tags:
Return:  false if not found, or an html a link to the procedural page's documentation
See:  Converter::getPageLink()


Redefinition of:
Converter::getPageLink()
return false or a pageLink to $expr

[ Top ]
getPageName  [line 613]

  void getPageName( &$element  )

Parameters:
   &$element: 


[ Top ]
getRootTree  [line 678]

  string getRootTree( array $tree, $package  )

return formatted class tree for the Class Trees page

Parameters:
array   $tree:  output from getSortedClassTreeFromClass()
   $package: 

API Tags:
See:  Classes::$definitechild, PDFdefaultConverter::generateFormattedClassTrees()


[ Top ]
getSourceAnchor  [line 167]

  string getSourceAnchor( string $sourcefile, string $anchor, [string $text = ''], [boolean $link = false]  )

Retrieve a Converter-specific anchor to a segment of a source code file parsed via a @filesource tag.

Parameters:
string   $sourcefile:  full path to source file
string   $anchor:  name of anchor
string   $text:  link text, if this is a link
boolean   $link:  returns either a link or a destination based on this parameter

API Tags:
Return:  link to an anchor, or the anchor


[ Top ]
getSourceLink  [line 146]

  void getSourceLink( $path  )

Parameters:
   $path: 


Redefinition of:
Converter::getSourceLink()

[ Top ]
getState  [line 961]

  1 getState( )


API Tags:
Return:  always the same


Redefinition of:
Converter::getState()
Return parserStringWithInlineTags::Convert() cache state

[ Top ]
getTutorialId  [line 619]

  void getTutorialId( $package, $subpackage, $tutorial, $id  )

Parameters:
   $package: 
   $subpackage: 
   $tutorial: 
   $id: 


Redefinition of:
Converter::getTutorialId()
Return a converter-specific id to distinguish tutorials and their sections

[ Top ]
getVarLink  [line 930]

  mixed getVarLink( string $expr, string $class, string $package, [string $file = false], [boolean $text = false], boolean 5  )

Parameters:
boolean   5:  return just the URL, or enclose it in an html a tag
string   $expr:  name of var
string   $class:  class containing var
string   $package:  package name
string   $file:  full path to look in (used in index generation)
boolean   $text:  deprecated

API Tags:
Return:  false if not found, or an html a link to the var's documentation
See:  Converter::getVarLink()


Redefinition of:
Converter::getVarLink()
return false or a varLink to $expr in $class

[ Top ]
mystrnatcasecmp  [line 824]

  void mystrnatcasecmp( $a, $b  )

Parameters:
   $a: 
   $b: 


[ Top ]
Output  [line 745]

  void Output( [ $title = 'Generated Documentation']  )

calls Cezpdf::ezOutput() and writes documentation.pdf to targetDir

Parameters:
   $title: 


Redefinition of:
Converter::Output()
do all necessary output

[ Top ]
postProcess  [line 121]

  void postProcess( $text  )

Parameters:
   $text: 


Redefinition of:
Converter::postProcess()
This version does nothing

[ Top ]
returnLink  [line 234]

  string returnLink( string $link, string $text  )

Parameters:
string   $link: 
string   $text: 

API Tags:
Return:  <c:alink:$link>$text</c:alink>


Redefinition of:
Converter::returnLink()
take URL $link and text $text and return a link in the format needed for the Converter

[ Top ]
returnSee  [line 184]

  void returnSee( abstractLink &$element, [string $eltext = false]  )

Returns a bookmark using Cezpdf 009

Parameters:
abstractLink   &$element:  a descendant of abstractlink should be passed, and never text
string   $eltext:  text to display in the link


Redefinition of:
Converter::returnSee()
take abstractLink descendant and text $eltext and return a link

[ Top ]
setTemplateDir  [line 954]

  void setTemplateDir( $dir  )

Parameters:
   $dir: 


Redefinition of:
Converter::setTemplateDir()
sets the template directory based on the $outputformat and $name

[ Top ]
TranslateTag  [line 596]

  string TranslateTag( string $name, string $attr, string $cdata, string $unconvertedcdata  )

Used to translate an XML DocBook tag from a tutorial by reading the options.ini file for the template.

Parameters:
string   $name:  tag name
string   $attr:  any attributes Format: array(name => value)
string   $cdata:  the tag contents, if any
string   $unconvertedcdata:  the tag contents, if any, unpost-processed


Redefinition of:
Converter::TranslateTag()
Used to translate an XML DocBook tag from a tutorial by reading the options.ini file for the template.

[ Top ]
unmangle  [line 969]

  void unmangle( $notused, $source  )

Parameters:
   $notused: 
   $source: 

API Tags:
See:  Converter::unmangle()


Redefinition of:
Converter::unmangle()
Called by parserSourceInlineTag::stringConvert() to allow converters to format the source code the way they'd like.

[ Top ]
writeExample  [line 126]

  void writeExample( $title, $path, $source  )

Parameters:
   $title: 
   $path: 
   $source: 


Redefinition of:
Converter::writeExample()
Write out the formatted source code for an example php file

[ Top ]
writeSource  [line 106]

  void writeSource( $path, $value  )

Parameters:
   $path: 
   $value: 


Redefinition of:
Converter::writeSource()
Write out the formatted source code for a php file

[ Top ]

Documentation generated on Tue, 24 Oct 2006 09:25:26 -0500 by phpDocumentor 1.3.1