<?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.
 * 
 ***********************************************************-->
<accel:acceleratorlist xmlns:accel="http://openoffice.org/2001/accel" xmlns:xlink="http://www.w3.org/1999/xlink">
	<accel:item accel:code="KEY_Q" accel:mod1="true" xlink:href=".uno:Quit"/>
	<accel:item accel:code="KEY_F4" accel:mod2="true" xlink:href=".uno:Quit"/>
	<accel:item accel:code="KEY_N" accel:mod1="true" xlink:href=".uno:NewDoc"/>
	<accel:item accel:code="KEY_O" accel:mod1="true" xlink:href=".uno:Open"/>
	<accel:item accel:code="KEY_OPEN" xlink:href=".uno:Open"/>
	<accel:item accel:code="KEY_P" accel:mod1="true" xlink:href=".uno:Print"/>
	<accel:item accel:code="KEY_S" accel:mod1="true" xlink:href=".uno:Save"/>
	<accel:item accel:code="KEY_W" accel:mod1="true" xlink:href=".uno:CloseWin"/>
	<accel:item accel:code="KEY_F4" accel:mod1="true" xlink:href=".uno:CloseWin"/>
	<accel:item accel:code="KEY_J" accel:shift="true" accel:mod1="true" xlink:href=".uno:FullScreen"/>
	<accel:item accel:code="KEY_Z" accel:mod1="true" xlink:href=".uno:Undo"/>
	<accel:item accel:code="KEY_BACKSPACE" accel:mod2="true" xlink:href=".uno:Undo"/>
	<accel:item accel:code="KEY_UNDO" xlink:href=".uno:Undo"/>
	<accel:item accel:code="KEY_Y" accel:mod1="true" xlink:href=".uno:Redo"/>
	<accel:item accel:code="KEY_REPEAT" xlink:href=".uno:Repeat"/>
	<accel:item accel:code="KEY_X" accel:mod1="true" xlink:href=".uno:Cut"/>
	<accel:item accel:code="KEY_DELETE" accel:shift="true" xlink:href=".uno:Cut"/>
	<accel:item accel:code="KEY_CUT" xlink:href=".uno:Cut"/>
	<accel:item accel:code="KEY_C" accel:mod1="true" xlink:href=".uno:Copy"/>
	<accel:item accel:code="KEY_INSERT" accel:mod1="true" xlink:href=".uno:Copy"/>
	<accel:item accel:code="KEY_COPY" xlink:href=".uno:Copy"/>
	<accel:item accel:code="KEY_V" accel:mod1="true" xlink:href=".uno:Paste"/>
	<accel:item accel:code="KEY_INSERT" accel:shift="true" xlink:href=".uno:Paste"/>
	<accel:item accel:code="KEY_PASTE" xlink:href=".uno:Paste"/>
	<accel:item accel:code="KEY_DELETE" xlink:href=".uno:Delete"/>
	<accel:item accel:code="KEY_9" accel:shift="true" accel:mod1="true" accel:mod2="true" xlink:href=".uno:ShowItemBrowser"/>
	<accel:item accel:code="KEY_F4" xlink:href=".uno:TransformDialog"/>
</accel:acceleratorlist>
