<?xml version="1.0" encoding="utf-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
  <TextFlow version="2.0.0" xmlns="http://ns.adobe.com/textLayout/2008" paddingLeft="4" paddingTop="4" columnCount="3">
    <div listStylePosition="inside">
    <listMarkerFormat><ListMarkerFormat afterContent=" "/></listMarkerFormat>
	<p>BEFORE</p>
	<list paddingRight="24" paddingLeft="24" listStyleType="upperAlpha"><li>upperAlpha item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="lowerAlpha"><li>lowerAlpha item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="upperRoman"><li>upperRoman item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="lowerRoman"><li>lowerRoman item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="arabicIndic"><li>arabicIndic item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="bengali"><li>bengali item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="decimal"><li>decimal item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="decimalLeadingZero"><li>decimalLeadingZero item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="devanagari"><li>devangari item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="gujarati"><li>gujarati item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="gurmukhi"><li>gurmukhi item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="kannada"><li>kannada item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="persian"><li>persian item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="thai"><li>thai item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="urdu"><li>urdu item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="cjkEarthlyBranch"><li>cjkEarthlyBranch item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="cjkHeavenlyStem"><li>cjkHeavenlyStem item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="hangul"><li>hangul item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="hangulConstant"><li>hangulConstant item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="hiragana"><li>hiragana item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="hiraganaIroha"><li>hiraganaIroha item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="katakana"><li>katakana item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="katakanaIroha"><li>katakanaIroha item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="lowerGreek"><li>lowerGreek item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="lowerLatin"><li>lowerLatin item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="upperGreek"><li>upperGreek item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="upperLatin"><li>upperLatin item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="none"><li>none item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="disc"><li>disc item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="circle"><li>circle item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="square"><li>square item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="box"><li>box item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="check"><li>check item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="diamond"><li>diamond item</li><li>another</li></list>
	<list paddingRight="24" paddingLeft="24" listStyleType="hyphen"><li>hyphen item</li><li>another</li></list>
	<p>AFTER</p>
    </div>
  </TextFlow>
