<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FI18N%2FBreakIterator</id>
		<title>Java Tutorial/I18N/BreakIterator - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FI18N%2FBreakIterator"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/I18N/BreakIterator&amp;action=history"/>
		<updated>2026-04-22T08:11:17Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/I18N/BreakIterator&amp;diff=4540&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/I18N/BreakIterator&amp;diff=4540&amp;oldid=prev"/>
				<updated>2010-06-01T05:03:01Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:03, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/I18N/BreakIterator&amp;diff=4539&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/I18N/BreakIterator&amp;diff=4539&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Determining Potential Line Breaks in a Unicode String ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.text.BreakIterator;&lt;br /&gt;
import java.util.Locale;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    BreakIterator iterator = BreakIterator.getLineInstance(Locale.CANADA);&lt;br /&gt;
    iterator.setText(&amp;quot;line1\nline2&amp;quot;);&lt;br /&gt;
    for (int index = iterator.first(); index != BreakIterator.DONE; index = iterator.next()) {&lt;br /&gt;
      System.out.println(index);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Determining the Character Boundaries in a Unicode String ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.text.BreakIterator;&lt;br /&gt;
import java.util.Locale;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    BreakIterator iterator = BreakIterator.getCharacterInstance(Locale.CANADA);&lt;br /&gt;
    iterator.setText(&amp;quot;aString&amp;quot;);&lt;br /&gt;
    for (int index = iterator.first(); index != BreakIterator.DONE; index = iterator.next()) {&lt;br /&gt;
      System.out.println(index);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Determining the Sentence Boundaries in a Unicode String ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.text.BreakIterator;&lt;br /&gt;
import java.util.Locale;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    BreakIterator iterator = BreakIterator.getSentenceInstance(Locale.CANADA);&lt;br /&gt;
    iterator.setText(&amp;quot;this is a test.&amp;quot;);&lt;br /&gt;
    for (int index = iterator.first(); index != BreakIterator.DONE; index = iterator.next()) {&lt;br /&gt;
      System.out.println(index);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Determining the Word Boundaries in a Unicode String ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.text.BreakIterator;&lt;br /&gt;
import java.util.Locale;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    BreakIterator iterator = BreakIterator.getWordInstance(Locale.CANADA);&lt;br /&gt;
    iterator.setText(&amp;quot;a sentence&amp;quot;);&lt;br /&gt;
    for (int index = iterator.first(); index != BreakIterator.DONE; index = iterator.next()) {&lt;br /&gt;
      System.out.println(index);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Word Wrap ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * $Revision: 10205 $&lt;br /&gt;
 * $Date: 2008-04-11 15:48:27 -0700 (Fri, 11 Apr 2008) $&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright (C) 2004-2008 Jive Software. All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * This software is published under the terms of the GNU Public License (GPL),&lt;br /&gt;
 * a copy of which is included in this distribution, or a commercial license&lt;br /&gt;
 * agreement with Jive.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.UnsupportedEncodingException;&lt;br /&gt;
import java.security.MessageDigest;&lt;br /&gt;
import java.security.NoSuchAlgorithmException;&lt;br /&gt;
import java.text.BreakIterator;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.util.concurrent.ConcurrentHashMap;&lt;br /&gt;
/**&lt;br /&gt;
 * Utility class to peform common String manipulation algorithms.&lt;br /&gt;
 */&lt;br /&gt;
public class StringUtils {&lt;br /&gt;
    // Constants used by escapeHTMLTags&lt;br /&gt;
    private static final char[] QUOTE_ENCODE = &amp;quot;&amp;amp;quot;&amp;quot;.toCharArray();&lt;br /&gt;
    private static final char[] AMP_ENCODE = &amp;quot;&amp;amp;amp;&amp;quot;.toCharArray();&lt;br /&gt;
    private static final char[] LT_ENCODE = &amp;quot;&amp;amp;lt;&amp;quot;.toCharArray();&lt;br /&gt;
    private static final char[] GT_ENCODE = &amp;quot;&amp;amp;gt;&amp;quot;.toCharArray();&lt;br /&gt;
    private StringUtils() {&lt;br /&gt;
        // Not instantiable.&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Reformats a string where lines that are longer than &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt;&lt;br /&gt;
     * are split apart at the earliest wordbreak or at maxLength, whichever is&lt;br /&gt;
     * sooner. If the width specified is less than 5 or greater than the input&lt;br /&gt;
     * Strings length the string will be returned as is.&lt;br /&gt;
     * &amp;lt;p/&amp;gt;&lt;br /&gt;
     * Please note that this method can be lossy - trailing spaces on wrapped&lt;br /&gt;
     * lines may be trimmed.&lt;br /&gt;
     *&lt;br /&gt;
     * @param input the String to reformat.&lt;br /&gt;
     * @param width the maximum length of any one line.&lt;br /&gt;
     * @return a new String with reformatted as needed.&lt;br /&gt;
     */&lt;br /&gt;
    public static String wordWrap(String input, int width, Locale locale) {&lt;br /&gt;
        // protect ourselves&lt;br /&gt;
        if (input == null) {&lt;br /&gt;
            return &amp;quot;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        else if (width &amp;lt; 5) {&lt;br /&gt;
            return input;&lt;br /&gt;
        }&lt;br /&gt;
        else if (width &amp;gt;= input.length()) {&lt;br /&gt;
            return input;&lt;br /&gt;
        }&lt;br /&gt;
  &lt;br /&gt;
        StringBuilder buf = new StringBuilder(input);&lt;br /&gt;
        boolean endOfLine = false;&lt;br /&gt;
        int lineStart = 0;&lt;br /&gt;
        for (int i = 0; i &amp;lt; buf.length(); i++) {&lt;br /&gt;
            if (buf.charAt(i) == &amp;quot;\n&amp;quot;) {&lt;br /&gt;
                lineStart = i + 1;&lt;br /&gt;
                endOfLine = true;&lt;br /&gt;
            }&lt;br /&gt;
            // handle splitting at width character&lt;br /&gt;
            if (i &amp;gt; lineStart + width - 1) {&lt;br /&gt;
                if (!endOfLine) {&lt;br /&gt;
                    int limit = i - lineStart - 1;&lt;br /&gt;
                    BreakIterator breaks = BreakIterator.getLineInstance(locale);&lt;br /&gt;
                    breaks.setText(buf.substring(lineStart, i));&lt;br /&gt;
                    int end = breaks.last();&lt;br /&gt;
                    // if the last character in the search string isn&amp;quot;t a space,&lt;br /&gt;
                    // we can&amp;quot;t split on it (looks bad). Search for a previous&lt;br /&gt;
                    // break character&lt;br /&gt;
                    if (end == limit + 1) {&lt;br /&gt;
                        if (!Character.isWhitespace(buf.charAt(lineStart + end))) {&lt;br /&gt;
                            end = breaks.preceding(end - 1);&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    // if the last character is a space, replace it with a \n&lt;br /&gt;
                    if (end != BreakIterator.DONE &amp;amp;&amp;amp; end == limit + 1) {&lt;br /&gt;
                        buf.replace(lineStart + end, lineStart + end + 1, &amp;quot;\n&amp;quot;);&lt;br /&gt;
                        lineStart = lineStart + end;&lt;br /&gt;
                    }&lt;br /&gt;
                    // otherwise, just insert a \n&lt;br /&gt;
                    else if (end != BreakIterator.DONE &amp;amp;&amp;amp; end != 0) {&lt;br /&gt;
                        buf.insert(lineStart + end, &amp;quot;\n&amp;quot;);&lt;br /&gt;
                        lineStart = lineStart + end + 1;&lt;br /&gt;
                    }&lt;br /&gt;
                    else {&lt;br /&gt;
                        buf.insert(i, &amp;quot;\n&amp;quot;);&lt;br /&gt;
                        lineStart = i + 1;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                else {&lt;br /&gt;
                    buf.insert(i, &amp;quot;\n&amp;quot;);&lt;br /&gt;
                    lineStart = i + 1;&lt;br /&gt;
                    endOfLine = false;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return buf.toString();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Wrap multi-line strings (and get the individual lines) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * $Id: Utilities.java,v 1.11 2008/10/14 22:31:46 rah003 Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright 2006 Sun Microsystems, Inc., 4150 Network Circle,&lt;br /&gt;
 * Santa Clara, California 95054, U.S.A. All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or&lt;br /&gt;
 * modify it under the terms of the GNU Lesser General Public&lt;br /&gt;
 * License as published by the Free Software Foundation; either&lt;br /&gt;
 * version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful,&lt;br /&gt;
 * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
 * Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
 * License along with this library; if not, write to the Free Software&lt;br /&gt;
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
 */&lt;br /&gt;
import java.text.BreakIterator;&lt;br /&gt;
import java.util.StringTokenizer;&lt;br /&gt;
/**&lt;br /&gt;
 * Contribution from NetBeans: Issue #319-swingx.&lt;br /&gt;
 * &lt;br /&gt;
 * &lt;br /&gt;
 * PENDING: need to reconcile with OS, JVM... added as-is because needed the&lt;br /&gt;
 * shortcut handling to fix #&lt;br /&gt;
 * &lt;br /&gt;
 * @author apple&lt;br /&gt;
 */&lt;br /&gt;
public class Utils {&lt;br /&gt;
  /**&lt;br /&gt;
   * Wrap multi-line strings (and get the individual lines).&lt;br /&gt;
   * &lt;br /&gt;
   * @param original&lt;br /&gt;
   *          the original string to wrap&lt;br /&gt;
   * @param width&lt;br /&gt;
   *          the maximum width of lines&lt;br /&gt;
   * @param breakIterator&lt;br /&gt;
   *          breaks original to chars, words, sentences, depending on what&lt;br /&gt;
   *          instance you provide.&lt;br /&gt;
   * @param removeNewLines&lt;br /&gt;
   *          if &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, any newlines in the original string are&lt;br /&gt;
   *          ignored&lt;br /&gt;
   * @return the lines after wrapping&lt;br /&gt;
   */&lt;br /&gt;
  public static String[] wrapStringToArray(String original, int width, BreakIterator breakIterator,&lt;br /&gt;
      boolean removeNewLines) {&lt;br /&gt;
    if (original.length() == 0) {&lt;br /&gt;
      return new String[] { original };&lt;br /&gt;
    }&lt;br /&gt;
    String[] workingSet;&lt;br /&gt;
    // substitute original newlines with spaces,&lt;br /&gt;
    // remove newlines from head and tail&lt;br /&gt;
    if (removeNewLines) {&lt;br /&gt;
      original = trimString(original);&lt;br /&gt;
      original = original.replace(&amp;quot;\n&amp;quot;, &amp;quot; &amp;quot;);&lt;br /&gt;
      workingSet = new String[] { original };&lt;br /&gt;
    } else {&lt;br /&gt;
      StringTokenizer tokens = new StringTokenizer(original, &amp;quot;\n&amp;quot;); // NOI18N&lt;br /&gt;
      int len = tokens.countTokens();&lt;br /&gt;
      workingSet = new String[len];&lt;br /&gt;
      for (int i = 0; i &amp;lt; len; i++) {&lt;br /&gt;
        workingSet[i] = tokens.nextToken();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if (width &amp;lt; 1) {&lt;br /&gt;
      width = 1;&lt;br /&gt;
    }&lt;br /&gt;
    if (original.length() &amp;lt;= width) {&lt;br /&gt;
      return workingSet;&lt;br /&gt;
    }&lt;br /&gt;
    widthcheck: {&lt;br /&gt;
      boolean ok = true;&lt;br /&gt;
      for (int i = 0; i &amp;lt; workingSet.length; i++) {&lt;br /&gt;
        ok = ok &amp;amp;&amp;amp; (workingSet[i].length() &amp;lt; width);&lt;br /&gt;
        if (!ok) {&lt;br /&gt;
          break widthcheck;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      return workingSet;&lt;br /&gt;
    }&lt;br /&gt;
    java.util.ArrayList&amp;lt;String&amp;gt; lines = new java.util.ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;
    int lineStart = 0; // the position of start of currently processed line in&lt;br /&gt;
                        // the original string&lt;br /&gt;
    for (int i = 0; i &amp;lt; workingSet.length; i++) {&lt;br /&gt;
      if (workingSet[i].length() &amp;lt; width) {&lt;br /&gt;
        lines.add(workingSet[i]);&lt;br /&gt;
      } else {&lt;br /&gt;
        breakIterator.setText(workingSet[i]);&lt;br /&gt;
        int nextStart = breakIterator.next();&lt;br /&gt;
        int prevStart = 0;&lt;br /&gt;
        do {&lt;br /&gt;
          while (((nextStart - lineStart) &amp;lt; width) &amp;amp;&amp;amp; (nextStart != BreakIterator.DONE)) {&lt;br /&gt;
            prevStart = nextStart;&lt;br /&gt;
            nextStart = breakIterator.next();&lt;br /&gt;
          }&lt;br /&gt;
          if (nextStart == BreakIterator.DONE) {&lt;br /&gt;
            nextStart = prevStart = workingSet[i].length();&lt;br /&gt;
          }&lt;br /&gt;
          if (prevStart == 0) {&lt;br /&gt;
            prevStart = nextStart;&lt;br /&gt;
          }&lt;br /&gt;
          lines.add(workingSet[i].substring(lineStart, prevStart));&lt;br /&gt;
          lineStart = prevStart;&lt;br /&gt;
          prevStart = 0;&lt;br /&gt;
        } while (lineStart &amp;lt; workingSet[i].length());&lt;br /&gt;
        lineStart = 0;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    String[] s = new String[lines.size()];&lt;br /&gt;
    return (String[]) lines.toArray(s);&lt;br /&gt;
  }&lt;br /&gt;
  private static String trimString(String s) {&lt;br /&gt;
    int idx = 0;&lt;br /&gt;
    char c;&lt;br /&gt;
    final int slen = s.length();&lt;br /&gt;
    if (slen == 0) {&lt;br /&gt;
      return s;&lt;br /&gt;
    }&lt;br /&gt;
    do {&lt;br /&gt;
      c = s.charAt(idx++);&lt;br /&gt;
    } while (((c == &amp;quot;\n&amp;quot;) || (c == &amp;quot;\r&amp;quot;)) &amp;amp;&amp;amp; (idx &amp;lt; slen));&lt;br /&gt;
    s = s.substring(--idx);&lt;br /&gt;
    idx = s.length() - 1;&lt;br /&gt;
    if (idx &amp;lt; 0) {&lt;br /&gt;
      return s;&lt;br /&gt;
    }&lt;br /&gt;
    do {&lt;br /&gt;
      c = s.charAt(idx--);&lt;br /&gt;
    } while (((c == &amp;quot;\n&amp;quot;) || (c == &amp;quot;\r&amp;quot;)) &amp;amp;&amp;amp; (idx &amp;gt;= 0));&lt;br /&gt;
    return s.substring(0, idx + 2);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>