// Word list originally created as part of the Electrum project, Copyright (C) 2014 Thomas Voegtlin
// Copyright (c) 2014, The Monero Project
// 
// All rights reserved.
// 
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
// 
// 1. Redistributions of source code must retain the above copyright notice, this list of
//    conditions and the following disclaimer.
// 
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
//    of conditions and the following disclaimer in the documentation and/or other
//    materials provided with the distribution.
// 
// 3. Neither the name of the copyright holder nor the names of its contributors may be
//    used to endorse or promote products derived from this software without specific
//    prior written permission.
// 
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

/*!
 * \file japanese.h
 * 
 * \brief Japanese word list and map.
 */

#ifndef JAPANESE_H
#define JAPANESE_H

#include <vector>
#include <unordered_map>
#include "language_base.h"
#include <string>

/*!
 * \namespace Language
 * \brief Mnemonic language related namespace.
 */
namespace Language
{
  class Japanese: public Base
  {
  public:
    Japanese()
    {
      word_list = new std::vector<std::string>({
        "あい",
        "あいこくしん",
        "あう",
        "あお",
        "あおぞら",
        "あか",
        "あかちゃん",
        "あき",
        "あきる",
        "あく",
        "あさ",
        "あさひ",
        "あし",
        "あずき",
        "あせ",
        "あそぶ",
        "あたる",
        "あつい",
        "あな",
        "あに",
        "あね",
        "あひる",
        "あまい",
        "あみ",
        "あめ",
        "あめりか",
        "あやまる",
        "あゆむ",
        "あらいぐま",
        "あらし",
        "あり",
        "ある",
        "あれ",
        "あわ",
        "あんこ",
        "いう",
        "いえ",
        "いおん",
        "いか",
        "いがい",
        "いかいよう",
        "いけ",
        "いけん",
        "いこく",
        "いこつ",
        "いさん",
        "いし",
        "いじゅう",
        "いす",
        "いせい",
        "いせえび",
        "いせかい",
        "いせき",
        "いそうろう",
        "いそがしい",
        "いたりあ",
        "いてざ",
        "いてん",
        "いと",
        "いない",
        "いなか",
        "いぬ",
        "いね",
        "いのち",
        "いのる",
        "いはつ",
        "いはん",
        "いびき",
        "いひん",
        "いふく",
        "いへん",
        "いほう",
        "いま",
        "いみ",
        "いみん",
        "いも",
        "いもうと",
        "いもたれ",
        "いもり",
        "いや",
        "いやす",
        "いよかん",
        "いよく",
        "いらい",
        "いらすと",
        "いりぐち",
        "いりょう",
        "いりょうひ",
        "いる",
        "いれい",
        "いれもの",
        "いれる",
        "いろ",
        "いろえんぴつ",
        "いわ",
        "いわう",
        "いわかん",
        "いんげんまめ",
        "うえ",
        "うおざ",
        "うかぶ",
        "うきわ",
        "うく",
        "うくらいな",
        "うくれれ",
        "うけつぐ",
        "うけつけ",
        "うける",
        "うごく",
        "うこん",
        "うさぎ",
        "うし",
        "うしなう",
        "うしろ",
        "うしろがみ",
        "うすい",
        "うすぎ",
        "うせつ",
        "うそ",
        "うた",
        "うちあわせ",
        "うちがわ",
        "うちき",
        "うつ",
        "うなぎ",
        "うなじ",
        "うに",
        "うねる",
        "うのう",
        "うぶげ",
        "うぶごえ",
        "うま",
        "うまれる",
        "うみ",
        "うむ",
        "うめ",
        "うめる",
        "うもう",
        "うやまう",
        "うよく",
        "うら",
        "うらない",
        "うる",
        "うるさい",
        "うれしい",
        "うろこ",
        "うわき",
        "うわさ",
        "えい",
        "えいえん",
        "えいが",
        "えいぎょう",
        "えいご",
        "えおり",
        "えき",
        "えきたい",
        "えくせる",
        "えさ",
        "えしゃく",
        "えすて",
        "えつらん",
        "えと",
        "えのぐ",
        "えび",
        "えほうまき",
        "えほん",
        "えま",
        "えまき",
        "えもじ",
        "えもの",
        "えらい",
        "えらぶ",
        "えり",
        "えりあ",
        "える",
        "えん",
        "えんえん",
        "おきる",
        "おく",
        "おけ",
        "おこる",
        "おしえる",
        "おやゆび",
        "おらんだ",
        "かあつ",
        "かい",
        "かう",
        "かお",
        "かがし",
        "かき",
        "かく",
        "かこ",
        "かさ",
        "かす",
        "かち",
        "かつ",
        "かなざわし",
        "かに",
        "かね",
        "かのう",
        "かほう",
        "かほご",
        "かまぼこ",
        "かみ",
        "かむ",
        "かめれおん",
        "かも",
        "かゆい",
        "からい",
        "かるい",
        "かろう",
        "かわ",
        "かわら",
        "きあい",
        "きあつ",
        "きいろ",
        "ぎいん",
        "きうい",
        "きうん",
        "きえる",
        "きおう",
        "きおく",
        "きおち",
        "きおん",
        "きか",
        "きかい",
        "きかく",
        "きかん",
        "きかんしゃ",
        "きぎ",
        "ききて",
        "きく",
        "きくばり",
        "きくらげ",
        "きけん",
        "きけんせい",
        "きこう",
        "きこえる",
        "きこく",
        "きさい",
        "きさく",
        "きさま",
        "きさらぎ",
        "きし",
        "きしゅ",
        "きす",
        "きすう",
        "きせい",
        "きせき",
        "きせつ",
        "きそ",
        "きそう",
        "きそく",
        "きぞく",
        "ぎそく",
        "きぞん",
        "きた",
        "きたえる",
        "きち",
        "きちょう",
        "きつえん",
        "きつつき",
        "きつね",
        "きてい",
        "きどう",
        "きどく",
        "きない",
        "きなが",
        "きぬ",
        "きぬごし",
        "きねん",
        "きのう",
        "きはく",
        "きびしい",
        "きひん",
        "きふ",
        "ぎふ",
        "きふく",
        "ぎぼ",
        "きほう",
        "きぼう",
        "きほん",
        "きまる",
        "きみ",
        "きみつ",
        "ぎむ",
        "きむずかしい",
        "きめ",
        "きめる",
        "きもだめし",
        "きもち",
        "きやく",
        "きよう",
        "きらい",
        "きらく",
        "きり",
        "きる",
        "きれい",
        "きれつ",
        "きろく",
        "ぎろん",
        "きわめる",
        "ぐあい",
        "くい",
        "くいず",
        "くうかん",
        "くうき",
        "くうぐん",
        "くうこう",
        "くうそう",
        "くうふく",
        "くうぼ",
        "くかん",
        "くき",
        "くきょう",
        "くげん",
        "ぐこう",
        "くさ",
        "くさい",
        "くさき",
        "くさばな",
        "くさる",
        "くし",
        "くしゃみ",
        "くしょう",
        "くすのき",
        "くすり",
        "くすりゆび",
        "くせ",
        "くせげ",
        "くせん",
        "くたびれる",
        "くち",
        "くちこみ",
        "くちさき",
        "くつ",
        "くつした",
        "くつろぐ",
        "くとうてん",
        "くどく",
        "くなん",
        "くに",
        "くねくね",
        "くのう",
        "くふう",
        "くま",
        "くみあわせ",
        "くみたてる",
        "くむ",
        "くめる",
        "くやくしょ",
        "くらす",
        "くり",
        "くれる",
        "くろ",
        "くろう",
        "くわしい",
        "ぐんじょ",
        "けあな",
        "けいけん",
        "けいこ",
        "けいさい",
        "けいさつ",
        "げいのうじん",
        "けいれき",
        "けいれつ",
        "けいれん",
        "けいろ",
        "けおとす",
        "けおりもの",
        "けが",
        "げき",
        "げきか",
        "げきげん",
        "げきだん",
        "げきちん",
        "げきど",
        "げきは",
        "げきやく",
        "げこう",
        "げこくじょう",
        "けさ",
        "げざい",
        "けさき",
        "げざん",
        "けしき",
        "けしごむ",
        "けしょう",
        "けす",
        "げすと",
        "けた",
        "げた",
        "けたば",
        "けち",
        "けちゃっぷ",
        "けちらす",
        "けつ",
        "けつあつ",
        "けつい",
        "けつえき",
        "けっこん",
        "けつじょ",
        "けってい",
        "けつまつ",
        "げつようび",
        "げつれい",
        "けつろん",
        "げどく",
        "けとばす",
        "けとる",
        "けなげ",
        "けなす",
        "けなみ",
        "けぬき",
        "げねつ",
        "けねん",
        "けはい",
        "げひん",
        "けぶかい",
        "げぼく",
        "けまり",
        "けみかる",
        "けむし",
        "けむり",
        "けもの",
        "けらい",
        "ける",
        "げろ",
        "けろけろ",
        "けわしい",
        "けんい",
        "けんえつ",
        "けんお",
        "けんか",
        "げんき",
        "けんきゅう",
        "けんきょ",
        "けんけい",
        "けんけつ",
        "けんげん",
        "けんこう",
        "けんさ",
        "けんさく",
        "けんしゅう",
        "けんしゅつ",
        "けんしん",
        "けんすう",
        "けんそう",
        "げんそう",
        "けんそん",
        "げんち",
        "けんちく",
        "けんてい",
        "げんてい",
        "けんとう",
        "けんない",
        "けんにん",
        "げんぶつ",
        "けんま",
        "けんみん",
        "けんめい",
        "けんらん",
        "けんり",
        "けんりつ",
        "こあくま",
        "こい",
        "ごい",
        "こいびと",
        "こうい",
        "こうえん",
        "こうか",
        "こうかい",
        "こうかん",
        "こうさい",
        "こうさん",
        "こうしん",
        "こうず",
        "こうすい",
        "こうせん",
        "こうそう",
        "こうそく",
        "こうたい",
        "こうちゃ",
        "こうつう",
        "こうてい",
        "こうとうぶ",
        "こうない",
        "こうはい",
        "こうはん",
        "こうもく",
        "こえ",
        "こえる",
        "こおり",
        "ごがつ",
        "こかん",
        "こく",
        "こくご",
        "こくない",
        "こくはく",
        "こけい",
        "こける",
        "ここ",
        "こころ",
        "ごさ",
        "こさめ",
        "こし",
        "こしつ",
        "こす",
        "こすう",
        "こせい",
        "こせき",
        "こぜん",
        "こそだて",
        "こたい",
        "こたえる",
        "こたつ",
        "こちょう",
        "こっか",
        "こつこつ",
        "こつばん",
        "こつぶ",
        "こてい",
        "こてん",
        "こと",
        "ことがら",
        "ことし",
        "こなごな",
        "こねこね",
        "このまま",
        "このみ",
        "このよ",
        "こはん",
        "ごはん",
        "ごび",
        "こひつじ",
        "こふう",
        "こふん",
        "こぼれる",
        "ごま",
        "こまかい",
        "こまつし",
        "こまつな",
        "こまる",
        "こむ",
        "こむぎこ",
        "こめ",
        "こもじ",
        "こもち",
        "こもの",
        "こもん",
        "こや",
        "こやく",
        "こやま",
        "こゆう",
        "こゆび",
        "こよい",
        "こよう",
        "こりる",
        "こる",
        "これくしょん",
        "ころっけ",
        "こわもて",
        "こわれる",
        "こん",
        "こんいん",
        "こんかい",
        "こんき",
        "こんしゅう",
        "こんしゅん",
        "こんすい",
        "こんだて",
        "こんだん",
        "こんとん",
        "こんなん",
        "こんびに",
        "こんぽう",
        "こんぽん",
        "こんまけ",
        "こんや",
        "こんやく",
        "こんれい",
        "こんわく",
        "さいかい",
        "さいがい",
        "さいきん",
        "さいご",
        "さいこん",
        "さいしょ",
        "さうな",
        "さお",
        "さかいし",
        "さかな",
        "さかみち",
        "さき",
        "さく",
        "さくし",
        "さくじょ",
        "さくひん",
        "さくら",
        "さけ",
        "さこく",
        "さこつ",
        "さたん",
        "さつえい",
        "さっか",
        "さっきょく",
        "さつじん",
        "さつたば",
        "さつまいも",
        "さてい",
        "さといも",
        "さとう",
        "さとおや",
        "さとる",
        "さのう",
        "さば",
        "さばく",
        "さべつ",
        "さほう",
        "さほど",
        "さます",
        "さみしい",
        "さみだれ",
        "さむけ",
        "さめ",
        "さめる",
        "さやえんどう",
        "さゆう",
        "さよう",
        "さよく",
        "さら",
        "さらだ",
        "さる",
        "さわやか",
        "さわる",
        "さんいん",
        "さんか",
        "さんきゃく",
        "さんこう",
        "さんさい",
        "さんざん",
        "さんすう",
        "さんせい",
        "さんそ",
        "さんそん",
        "さんち",
        "さんちょう",
        "さんま",
        "さんみ",
        "さんらん",
        "しあい",
        "しあげ",
        "しあさって",
        "しあわせ",
        "しいく",
        "しいん",
        "しうち",
        "しえい",
        "しお",
        "しおけ",
        "しか",
        "しかい",
        "しかく",
        "じかん",
        "した",
        "したぎ",
        "したて",
        "したみ",
        "しちょう",
        "しちょうそん",
        "しちりん",
        "じつじ",
        "してい",
        "してき",
        "してつ",
        "してん",
        "しとう",
        "じどう",
        "しなぎれ",
        "しなもの",
        "しなん",
        "しねま",
        "しねん",
        "しのぐ",
        "しのぶ",
        "しはい",
        "しばかり",
        "しはつ",
        "じはつ",
        "しはらい",
        "しはん",
        "しひょう",
        "じふ",
        "しふく",
        "じぶん",
        "しへい",
        "しほう",
        "しほん",
        "しま",
        "しまう",
        "しまる",
        "しみ",
        "じみ",
        "しみん",
        "じむ",
        "しむける",
        "しめい",
        "しめる",
        "しもん",
        "しゃいん",
        "しゃうん",
        "しゃおん",
        "しゃかい",
        "じゃがいも",
        "しやくしょ",
        "しゃくほう",
        "しゃけん",
        "しゃこ",
        "しゃこう",
        "しゃざい",
        "しゃしん",
        "しゃせん",
        "しゃそう",
        "しゃたい",
        "しゃたく",
        "しゃちょう",
        "しゃっきん",
        "じゃま",
        "じゃり",
        "しゃりょう",
        "しゃりん",
        "しゃれい",
        "しゅうえん",
        "しゅうかい",
        "しゅうきん",
        "しゅうけい",
        "しゅうりょう",
        "しゅらば",
        "しょうか",
        "しょうかい",
        "しょうきん",
        "しょうじき",
        "しょくざい",
        "しょくたく",
        "しょっけん",
        "しょどう",
        "しょもつ",
        "しん",
        "しんか",
        "しんこう",
        "しんせいじ",
        "しんちく",
        "しんりん",
        "すあげ",
        "すあし",
        "すあな",
        "ずあん",
        "すいか",
        "すいとう",
        "すう",
        "すうがく",
        "すうじつ",
        "すうせん",
        "すおどり",
        "すき",
        "すきま",
        "すく",
        "すくう",
        "すくない",
        "すける",
        "すこし",
        "ずさん",
        "すし",
        "すずしい",
        "すすめる",
        "すそ",
        "ずっしり",
        "ずっと",
        "すで",
        "すてき",
        "すてる",
        "すな",
        "すなっく",
        "すなっぷ",
        "すね",
        "すねる",
        "すのこ",
        "すはだ",
        "すばらしい",
        "ずひょう",
        "ずぶぬれ",
        "すぶり",
        "すふれ",
        "すべて",
        "すべる",
        "ずほう",
        "すぼん",
        "すまい",
        "すみ",
        "すむ",
        "すめし",
        "すもう",
        "すやき",
        "すらいす",
        "すらいど",
        "すらすら",
        "すり",
        "する",
        "するめ",
        "すれちがう",
        "すろっと",
        "すわる",
        "すんぜん",
        "すんぽう",
        "せあぶら",
        "せいか",
        "せいかい",
        "せいかつ",
        "せおう",
        "せかい",
        "せかいかん",
        "せかいし",
        "せかいじゅう",
        "せき",
        "せきにん",
        "せきむ",
        "せきゆ",
        "せきらんうん",
        "せけん",
        "せこう",
        "せすじ",
        "せたい",
        "せたけ",
        "せっかい",
        "せっかく",
        "せっき",
        "せっきゃく",
        "せっきょく",
        "せっきん",
        "ぜっく",
        "せっけん",
        "せっこつ",
        "せっさたくま",
        "せつぞく",
        "せつだん",
        "せつでん",
        "せっぱん",
        "せつび",
        "せつぶん",
        "せつめい",
        "せつりつ",
        "せと",
        "せなか",
        "せのび",
        "せはば",
        "せぼね",
        "せまい",
        "せまる",
        "せみ",
        "せめる",
        "せもたれ",
        "せりふ",
        "せわ",
        "せん",
        "ぜんあく",
        "せんい",
        "せんえい",
        "せんか",
        "せんきょ",
        "せんく",
        "せんけつ",
        "せんげん",
        "ぜんご",
        "せんさい",
        "せんし",
        "せんしゅ",
        "せんす",
        "せんすい",
        "せんせい",
        "せんぞ",
        "せんそう",
        "せんたく",
        "せんち",
        "せんちゃ",
        "せんちゃく",
        "せんちょう",
        "せんてい",
        "せんとう",
        "せんぬき",
        "せんねん",
        "ぜんぶ",
        "せんぷうき",
        "せんぷく",
        "ぜんぽう",
        "せんむ",
        "せんめい",
        "せんめんじょ",
        "せんもん",
        "せんやく",
        "せんゆう",
        "せんよう",
        "ぜんら",
        "ぜんりゃく",
        "せんりょく",
        "せんれい",
        "せんろ",
        "そあく",
        "そいとげる",
        "そいね",
        "そう",
        "ぞう",
        "そうがんきょう",
        "そうき",
        "そうご",
        "そうなん",
        "そうび",
        "そうひょう",
        "そうめん",
        "そうり",
        "そうりょ",
        "そえもの",
        "そえん",
        "そかい",
        "そがい",
        "そぐ",
        "そげき",
        "そこう",
        "そこそこ",
        "そざい",
        "そし",
        "そしな",
        "そせい",
        "そせん",
        "そそぐ",
        "そだてる",
        "そつう",
        "そつえん",
        "そっかん",
        "そつぎょう",
        "そっけつ",
        "そっこう",
        "そっせん",
        "そっと",
        "そで",
        "そと",
        "そとがわ",
        "そとづら",
        "そなえる",
        "そなた",
        "そば",
        "そふ",
        "そふぼ",
        "そぼ",
        "そぼく",
        "そぼろ",
        "そまつ",
        "そまる",
        "そむく",
        "そむりえ",
        "そめる",
        "そもそも",
        "そよかぜ",
        "そら",
        "そらまめ",
        "そり",
        "そる",
        "そろう",
        "そんかい",
        "そんけい",
        "そんざい",
        "そんしつ",
        "そんしょう",
        "そんぞく",
        "そんちょう",
        "ぞんび",
        "ぞんぶん",
        "そんみん",
        "たあい",
        "たいいん",
        "たいうん",
        "たいえき",
        "たいおう",
        "だいおう",
        "たいか",
        "たいかい",
        "たいき",
        "たいきけん",
        "たいぐう",
        "たいくつ",
        "たいけい",
        "たいけつ",
        "たいけん",
        "たいこ",
        "たいこう",
        "たいさ",
        "たいさん",
        "たいしゅつ",
        "だいじょうぶ",
        "たいしょく",
        "だいず",
        "だいすき",
        "たいせい",
        "たいせつ",
        "たいせん",
        "たいそう",
        "たいちょう",
        "だいちょう",
        "たいとう",
        "たいない",
        "たいねつ",
        "たいのう",
        "たいは",
        "たいはん",
        "たいひ",
        "たいふう",
        "たいへん",
        "たいほ",
        "たいまつばな",
        "たいまん",
        "たいみんぐ",
        "たいむ",
        "たいめん",
        "たいやき",
        "たいやく",
        "たいよう",
        "たいら",
        "たいりょう",
        "たいりょく",
        "たいる",
        "たいわ",
        "たいわん",
        "たうえ",
        "たえる",
        "たおす",
        "たおる",
        "たかい",
        "たかね",
        "たき",
        "たきび",
        "たくさん",
        "たけ",
        "たこ",
        "たこく",
        "たこやき",
        "たさい",
        "ださい",
        "たしざん",
        "たす",
        "たすける",
        "たそがれ",
        "たたかう",
        "たたく",
        "たちば",
        "たちばな",
        "たつ",
        "だっかい",
        "だっきゃく",
        "だっこ",
        "だっしめん",
        "だっしゅつ",
        "だったい",
        "たて",
        "たてる",
        "たとえる",
        "たな",
        "たにん",
        "たぬき",
        "たね",
        "たのしみ",
        "たはつ",
        "たび",
        "たぶん",
        "たべる",
        "たぼう",
        "たほうめん",
        "たま",
        "たまご",
        "たまる",
        "だむる",
        "ためいき",
        "ためす",
        "ためる",
        "たもつ",
        "たやすい",
        "たよる",
        "たら",
        "たらす",
        "たりきほんがん",
        "たりょう",
        "たりる",
        "たる",
        "たると",
        "たれる",
        "たれんと",
        "たろっと",
        "たわむれる",
        "たん",
        "だんあつ",
        "たんい",
        "たんおん",
        "たんか",
        "たんき",
        "たんけん",
        "たんご",
        "たんさく",
        "たんさん",
        "たんし",
        "たんしゅく",
        "たんじょうび",
        "だんせい",
        "たんそく",
        "たんたい",
        "たんち",
        "だんち",
        "たんちょう",
        "たんてい",
        "たんてき",
        "たんとう",
        "だんな",
        "たんにん",
        "だんねつ",
        "たんのう",
        "たんぴん",
        "たんまつ",
        "たんめい",
        "だんれつ",
        "だんろ",
        "だんわ",
        "ちあい",
        "ちあん",
        "ちい",
        "ちいき",
        "ちいさい",
        "ちえ",
        "ちえん",
        "ちか",
        "ちかい",
        "ちきゅう",
        "ちきん",
        "ちけい",
        "ちけいず",
        "ちけん",
        "ちこく",
        "ちさい",
        "ちしき",
        "ちしりょう",
        "ちず",
        "ちせい",
        "ちそう",
        "ちたい",
        "ちたん",
        "ちちおや",
        "ちつじょ",
        "ちてき",
        "ちてん",
        "ちぬき",
        "ちぬり",
        "ちのう",
        "ちひょう",
        "ちへいせん",
        "ちほう",
        "ちまた",
        "ちみつ",
        "ちみどろ",
        "ちめいど",
        "ちゅうい",
        "ちゅうおう",
        "ちゅうおうく",
        "ちゅうがっこう",
        "ちゅうごく",
        "ちゆりょく",
        "ちょうさ",
        "ちょうし",
        "ちらし",
        "ちらみ",
        "ちり",
        "ちりがみ",
        "ちる",
        "ちるど",
        "ちわわ",
        "ちんたい",
        "ちんもく",
        "ついか",
        "つうか",
        "つうじょう",
        "つうじる",
        "つうはん",
        "つうわ",
        "つえ",
        "つかう",
        "つかれる",
        "つき",
        "つく",
        "つくね",
        "つくる",
        "つけね",
        "つける",
        "つごう",
        "つた",
        "つたえる",
        "つち",
        "つつじ",
        "つとめる",
        "つな",
        "つながる",
        "つなみ",
        "つねづね",
        "つの",
        "つのる",
        "つば",
        "つぶ",
        "つぶす",
        "つぼ",
        "つま",
        "つまらない",
        "つまる",
        "つみ",
        "つみき",
        "つむ",
        "つめたい",
        "つもる",
        "つや",
        "つよい",
        "つり",
        "つるぼ",
        "つるみく",
        "つわもの",
        "つわり",
        "てあし",
        "てあて",
        "てあみ",
        "ていか",
        "ていき",
        "ていけい",
        "ていけつ",
        "ていけつあつ",
        "ていこく",
        "ていさつ",
        "ていし",
        "ていしゃ",
        "ていせい",
        "ていたい",
        "ていど",
        "ていねい",
        "ていひょう",
        "ていへん",
        "ていぼう",
        "てうち",
        "ておくれ",
        "てき",
        "てくび",
        "てこ",
        "てさぎょう",
        "てさげ",
        "でし",
        "てすり",
        "てそう",
        "てちがい",
        "てちょう",
        "てつがく",
        "てつづき",
        "てつや",
        "でぬかえ",
        "てぬき",
        "てぬぐい",
        "てのひら",
        "てはい",
        "てふだ",
        "てほどき",
        "てほん",
        "てま",
        "てまえ",
        "てまきずし",
        "てみじか",
        "てみやげ",
        "てら",
        "てらす",
        "でる",
        "てれび",
        "てろ",
        "てわけ",
        "てわたし",
        "でんあつ",
        "てんい",
        "てんいん",
        "てんかい",
        "てんき",
        "てんぐ",
        "てんけん",
        "でんげん",
        "てんごく",
        "てんさい",
        "てんすう",
        "でんち",
        "てんてき",
        "てんとう",
        "てんない",
        "てんぷ",
        "てんぷら",
        "てんぼうだい",
        "てんめつ",
        "てんらく",
        "てんらんかい",
        "でんりゅう",
        "でんりょく",
        "でんわ",
        "どあ",
        "どあい",
        "といれ",
        "とうむぎ",
        "とおい",
        "とおす",
        "とかい",
        "とかす",
        "ときおり",
        "ときどき",
        "とくい",
        "とくてい",
        "とくてん",
        "とくべつ",
        "とけい",
        "とける",
        "とさか",
        "とし",
        "としょかん",
        "とそう",
        "とたん",
        "とち",
        "とちゅう",
        "とつぜん",
        "とつにゅう",
        "ととのえる",
        "とない",
        "となえる",
        "となり",
        "とのさま",
        "とばす",
        "とぶ",
        "とほ",
        "とほう",
        "どま",
        "とまる",
        "とら",
        "とり",
        "とる",
        "とんかつ",
        "ない",
        "ないか",
        "ないかく",
        "ないこう",
        "ないしょ",
        "ないす",
        "ないせん",
        "ないそう",
        "ないぞう",
        "なおす",
        "なく",
        "なこうど",
        "なさけ",
        "なし",
        "なす",
        "なぜ",
        "なぞ",
        "なたでここ",
        "なつ",
        "なっとう",
        "なつやすみ",
        "ななおし",
        "なにごと",
        "なにもの",
        "なにわ",
        "なは",
        "なび",
        "なふだ",
        "なべ",
        "なまいき",
        "なまえ",
        "なまみ",
        "なみ",
        "なみだ",
        "なめらか",
        "なめる",
        "なやむ",
        "ならぶ",
        "なる",
        "なれる",
        "なわ",
        "なわとび",
        "なわばり",
        "にあう",
        "にいがた",
        "にうけ",
        "におい",
        "にかい",
        "にがて",
        "にきび",
        "にく",
        "にくしみ",
        "にくまん",
        "にげる",
        "にさんかたんそ",
        "にし",
        "にしき",
        "にす",
        "にせもの",
        "にちじ",
        "にちじょう",
        "にちようび",
        "にっか",
        "にっき",
        "にっけい",
        "にっこう",
        "にっさん",
        "にっしょく",
        "にっすう",
        "にっせき",
        "にってい",
        "になう",
        "にほん",
        "にまめ",
        "にもつ",
        "にやり",
        "にゅういん",
        "にゅうか",
        "にゅうし",
        "にゅうしゃ",
        "にゅうだん",
        "にゅうぶ",
        "にら",
        "にりんしゃ",
        "にる",
        "にわ",
        "にわとり",
        "にんい",
        "にんか",
        "にんき",
        "にんげん",
        "にんしき",
        "にんしょう",
        "にんしん",
        "にんずう",
        "にんそう",
        "にんたい",
        "にんち",
        "にんてい",
        "にんにく",
        "にんぷ",
        "にんまり",
        "にんむ",
        "にんめい",
        "にんよう",
        "ぬう",
        "ぬか",
        "ぬく",
        "ぬくもり",
        "ぬし",
        "ぬの",
        "ぬま",
        "ぬめり",
        "ぬらす",
        "ぬる",
        "ぬんちゃく",
        "ねあげ",
        "ねいき",
        "ねいる",
        "ねいろ",
        "ねぎ",
        "ねぐせ",
        "ねくたい",
        "ねくら",
        "ねこ",
        "ねこぜ",
        "ねこむ",
        "ねさげ",
        "ねすごす",
        "ねそべる",
        "ねつい",
        "ねつぞう",
        "ねったい",
        "ねったいぎょ",
        "ねぶそく",
        "ねふだ",
        "ねぼう",
        "ねほりはほり",
        "ねまき",
        "ねまわし",
        "ねみみ",
        "ねむい",
        "ねもと",
        "ねらう",
        "ねる",
        "ねわざ",
        "ねんいり",
        "ねんおし",
        "ねんかん",
        "ねんき",
        "ねんきん",
        "ねんぐ",
        "ねんざ",
        "ねんし",
        "ねんちゃく",
        "ねんちょう",
        "ねんど",
        "ねんぴ",
        "ねんぶつ",
        "ねんまく",
        "ねんまつ",
        "ねんりき",
        "ねんりょう",
        "ねんれい",
        "のいず",
        "のう",
        "のおづま",
        "のがす",
        "のきなみ",
        "のこぎり",
        "のこす",
        "のせる",
        "のぞく",
        "のぞむ",
        "のたまう",
        "のちほど",
        "のっく",
        "のばす",
        "のはら",
        "のべる",
        "のぼる",
        "のむ",
        "のやま",
        "のらいぬ",
        "のらねこ",
        "のり",
        "のる",
        "のれん",
        "のんき",
        "ばあい",
        "はあく",
        "ばあさん",
        "はい",
        "ばいか",
        "ばいく",
        "はいけん",
        "はいご",
        "はいこう",
        "はいし",
        "はいしゅつ",
        "はいしん",
        "はいすい",
        "はいせつ",
        "はいせん",
        "はいそう",
        "はいち",
        "ばいばい",
        "はう",
        "はえ",
        "はえる",
        "はおる",
        "はか",
        "ばか",
        "はかい",
        "はかる",
        "はき",
        "はく",
        "はくしゅ",
        "はけん",
        "はこ",
        "はこぶ",
        "はさみ",
        "はさん",
        "はし",
        "はしご",
        "はしる",
        "ばす",
        "はせる",
        "ぱそこん",
        "はそん",
        "はたん",
        "はち",
        "はちみつ",
        "はっか",
        "はっかく",
        "はっき",
        "はっきり",
        "はっくつ",
        "はっけん",
        "はっこう",
        "はっさん",
        "はっしゃ",
        "はっしん",
        "はったつ",
        "はっちゃく",
        "はっちゅう",
        "はってん",
        "はっぴょう",
        "はっぽう",
        "はて",
        "はな",
        "はなす",
        "はなび",
        "はにかむ",
        "はね",
        "はは",
        "はぶらし",
        "はま",
        "はみがき",
        "はむ",
        "はむかう",
        "はめつ",
        "はやい",
        "はら",
        "はらう",
        "はり",
        "はる",
        "はれ",
        "はろうぃん",
        "はわい",
        "はんい",
        "はんえい",
        "はんえん",
        "はんおん",
        "はんかく",
        "はんかち",
        "はんきょう",
        "はんこ",
        "はんこう",
        "はんしゃ"
      });
      word_map = new std::unordered_map<std::string, uint32_t>;
      trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
      language_name = "Japanese";
      populate_maps();
    }
  };
}

#endif