<!DOCTYPE html>
<html>

<head>
  <script src="http://code.angularjs.org/1.2.0-rc.2/angular.js"></script>
  <script src="https://code.angularjs.org/1.2.0-rc.2/angular-sanitize.min.js"></script>
  <script src="emoji.js"></script>
  <script src="script.js"></script>
  <link type="text/css" rel="stylesheet" href="emoji.css">
</head>

<body ng-app="app" ng-controller="AppCtrl">
  <ul>
    <li ng-bind-html="message | emoji"></li>
    <li ng-bind-html="messageWithAliases | emoji"></li>
  </ul>
</body>

</html>
angular.module("app", ["dbaq.emoji","ngSanitize"])
  .config(function(emojiConfigProvider) {
    emojiConfigProvider.addAlias("smile", ":)");
    emojiConfigProvider.addAlias("heart", "<3");
    emojiConfigProvider.addAlias("ok_hand", "+1");
  })
  .controller("AppCtrl", function ($scope) {
    $scope.message = "Animals: :dog: :cat: :snake: People: :smile: :confused: :angry: Places: :house: :school: :hotel: :poop:";
    $scope.messageWithAliases = "Emoji with aliases: :) <3 +1";
  });
.emoji { 
    display:inline-block;
    height: 22px;
    margin-right: .5em;
    width: 22px;
}
@media all and (-webkit-min-device-pixel-ratio:1),all and (min--moz-device-pixel-ratio:1),all and (-o-min-device-pixel-ratio:1),all and (min-device-pixel-ratio:1),all and (min-resolution:96dpi) { .emoji
    {     background: transparent url(https://raw.githubusercontent.com/dbaq/angular-emoji-filter-hd/master/dist/emojis.png) 0 0 no-repeat;
    }
}
@media all and (-webkit-min-device-pixel-ratio:1.5),all and (-o-min-device-pixel-ratio:3/2),all and (min-device-pixel-ratio:1.5),all and (min-resolution:144dpi) { .emoji
    {     background: transparent url(https://raw.githubusercontent.com/dbaq/angular-emoji-filter-hd/master/dist/emojis@2x.png) 0 0 no-repeat;
        background-size: 27776px 22px;
    }
}
@-moz-document url-prefix() { .emoji
    {     background: transparent url(https://raw.githubusercontent.com/dbaq/angular-emoji-filter-hd/master/dist/emojis.png) 0 0 no-repeat;
    }
}
.emoji_bowtie { background-position: -5px 0;} 
.emoji_smile { background-position: -37px 0;} 
.emoji_laughing { background-position: -69px 0;} 
.emoji_blush { background-position: -101px 0;} 
.emoji_smiley { background-position: -133px 0;} 
.emoji_relaxed { background-position: -165px 0;} 
.emoji_smirk { background-position: -197px 0;} 
.emoji_heart_eyes { background-position: -229px 0;} 
.emoji_kissing_heart { background-position: -261px 0;} 
.emoji_kissing_closed_eyes { background-position: -293px 0;} 
.emoji_flushed { background-position: -325px 0;} 
.emoji_relieved { background-position: -357px 0;} 
.emoji_satisfied { background-position: -389px 0;} 
.emoji_grin { background-position: -421px 0;} 
.emoji_wink { background-position: -453px 0;} 
.emoji_stuck_out_tongue_winking_eye { background-position: -485px 0;} 
.emoji_stuck_out_tongue_closed_eyes { background-position: -517px 0;} 
.emoji_grinning { background-position: -549px 0;} 
.emoji_kissing { background-position: -581px 0;} 
.emoji_kissing_smiling_eyes { background-position: -613px 0;} 
.emoji_stuck_out_tongue { background-position: -645px 0;} 
.emoji_sleeping { background-position: -677px 0;} 
.emoji_worried { background-position: -709px 0;} 
.emoji_frowning { background-position: -741px 0;} 
.emoji_anguished { background-position: -773px 0;} 
.emoji_open_mouth { background-position: -805px 0;} 
.emoji_grimacing { background-position: -837px 0;} 
.emoji_confused { background-position: -869px 0;} 
.emoji_hushed { background-position: -901px 0;} 
.emoji_expressionless { background-position: -933px 0;} 
.emoji_unamused { background-position: -965px 0;} 
.emoji_sweat_smile { background-position: -997px 0;} 
.emoji_sweat { background-position: -1029px 0;} 
.emoji_disappointed_relieved { background-position: -1061px 0;} 
.emoji_weary { background-position: -1093px 0;} 
.emoji_pensive { background-position: -1125px 0;} 
.emoji_disappointed { background-position: -1157px 0;} 
.emoji_confounded { background-position: -1189px 0;} 
.emoji_fearful { background-position: -1221px 0;} 
.emoji_cold_sweat { background-position: -1253px 0;} 
.emoji_persevere { background-position: -1285px 0;} 
.emoji_cry { background-position: -1317px 0;} 
.emoji_sob { background-position: -1349px 0;} 
.emoji_joy { background-position: -1381px 0;} 
.emoji_astonished { background-position: -1413px 0;} 
.emoji_scream { background-position: -1445px 0;} 
.emoji_neckbeard { background-position: -1477px 0;} 
.emoji_tired_face { background-position: -1509px 0;} 
.emoji_angry { background-position: -1541px 0;} 
.emoji_rage { background-position: -1573px 0;} 
.emoji_triumph { background-position: -1605px 0;} 
.emoji_sleepy { background-position: -1637px 0;} 
.emoji_yum { background-position: -1669px 0;} 
.emoji_mask { background-position: -1701px 0;} 
.emoji_sunglasses { background-position: -1733px 0;} 
.emoji_dizzy_face { background-position: -1765px 0;} 
.emoji_imp { background-position: -1797px 0;} 
.emoji_smiling_imp { background-position: -1829px 0;} 
.emoji_neutral_face { background-position: -1861px 0;} 
.emoji_no_mouth { background-position: -1893px 0;} 
.emoji_innocent { background-position: -1925px 0;} 
.emoji_alien { background-position: -1957px 0;} 
.emoji_yellow_heart { background-position: -1989px 0;} 
.emoji_blue_heart { background-position: -2021px 0;} 
.emoji_purple_heart { background-position: -2053px 0;} 
.emoji_heart { background-position: -2085px 0;} 
.emoji_green_heart { background-position: -2117px 0;} 
.emoji_broken_heart { background-position: -2149px 0;} 
.emoji_heartbeat { background-position: -2181px 0;} 
.emoji_heartpulse { background-position: -2213px 0;} 
.emoji_two_hearts { background-position: -2245px 0;} 
.emoji_revolving_hearts { background-position: -2277px 0;} 
.emoji_cupid { background-position: -2309px 0;} 
.emoji_sparkling_heart { background-position: -2341px 0;} 
.emoji_sparkles { background-position: -2373px 0;} 
.emoji_star { background-position: -2405px 0;} 
.emoji_star2 { background-position: -2437px 0;} 
.emoji_dizzy { background-position: -2469px 0;} 
.emoji_boom { background-position: -2501px 0;} 
.emoji_collision { background-position: -2533px 0;} 
.emoji_anger { background-position: -2565px 0;} 
.emoji_exclamation { background-position: -2597px 0;} 
.emoji_question { background-position: -2629px 0;} 
.emoji_grey_exclamation { background-position: -2661px 0;} 
.emoji_grey_question { background-position: -2693px 0;} 
.emoji_zzz { background-position: -2725px 0;} 
.emoji_dash { background-position: -2757px 0;} 
.emoji_sweat_drops { background-position: -2789px 0;} 
.emoji_notes { background-position: -2821px 0;} 
.emoji_musical_note { background-position: -2853px 0;} 
.emoji_fire { background-position: -2885px 0;} 
.emoji_hankey { background-position: -2917px 0;} 
.emoji_poop { background-position: -2949px 0;} 
.emoji_shit { background-position: -2981px 0;} 
.emoji_\+1 { background-position: -3013px 0;} 
.emoji_thumbsup { background-position: -3045px 0;} 
.emoji_\-1 { background-position: -3077px 0;} 
.emoji_thumbsdown { background-position: -3109px 0;} 
.emoji_ok_hand { background-position: -3141px 0;} 
.emoji_punch { background-position: -3173px 0;} 
.emoji_facepunch { background-position: -3205px 0;} 
.emoji_fist { background-position: -3237px 0;} 
.emoji_v { background-position: -3269px 0;} 
.emoji_wave { background-position: -3301px 0;} 
.emoji_hand { background-position: -3333px 0;} 
.emoji_raised_hand { background-position: -3365px 0;} 
.emoji_open_hands { background-position: -3397px 0;} 
.emoji_point_up { background-position: -3429px 0;} 
.emoji_point_down { background-position: -3461px 0;} 
.emoji_point_left { background-position: -3493px 0;} 
.emoji_point_right { background-position: -3525px 0;} 
.emoji_raised_hands { background-position: -3557px 0;} 
.emoji_pray { background-position: -3589px 0;} 
.emoji_point_up_2 { background-position: -3621px 0;} 
.emoji_clap { background-position: -3653px 0;} 
.emoji_muscle { background-position: -3685px 0;} 
.emoji_metal { background-position: -3717px 0;} 
.emoji_fu { background-position: -3749px 0;} 
.emoji_walking { background-position: -3781px 0;} 
.emoji_runner { background-position: -3813px 0;} 
.emoji_running { background-position: -3845px 0;} 
.emoji_couple { background-position: -3877px 0;} 
.emoji_family { background-position: -3909px 0;} 
.emoji_two_men_holding_hands { background-position: -3941px 0;} 
.emoji_two_women_holding_hands { background-position: -3973px 0;} 
.emoji_dancer { background-position: -4005px 0;} 
.emoji_dancers { background-position: -4037px 0;} 
.emoji_ok_woman { background-position: -4069px 0;} 
.emoji_no_good { background-position: -4101px 0;} 
.emoji_information_desk_person { background-position: -4133px 0;} 
.emoji_raising_hand { background-position: -4165px 0;} 
.emoji_bride_with_veil { background-position: -4197px 0;} 
.emoji_person_with_pouting_face { background-position: -4229px 0;} 
.emoji_person_frowning { background-position: -4261px 0;} 
.emoji_bow { background-position: -4293px 0;} 
.emoji_couplekiss { background-position: -4325px 0;} 
.emoji_couple_with_heart { background-position: -4357px 0;} 
.emoji_massage { background-position: -4389px 0;} 
.emoji_haircut { background-position: -4421px 0;} 
.emoji_nail_care { background-position: -4453px 0;} 
.emoji_boy { background-position: -4485px 0;} 
.emoji_girl { background-position: -4517px 0;} 
.emoji_woman { background-position: -4549px 0;} 
.emoji_man { background-position: -4581px 0;} 
.emoji_baby { background-position: -4613px 0;} 
.emoji_older_woman { background-position: -4645px 0;} 
.emoji_older_man { background-position: -4677px 0;} 
.emoji_person_with_blond_hair { background-position: -4709px 0;} 
.emoji_man_with_gua_pi_mao { background-position: -4741px 0;} 
.emoji_man_with_turban { background-position: -4773px 0;} 
.emoji_construction_worker { background-position: -4805px 0;} 
.emoji_cop { background-position: -4837px 0;} 
.emoji_angel { background-position: -4869px 0;} 
.emoji_princess { background-position: -4901px 0;} 
.emoji_smiley_cat { background-position: -4933px 0;} 
.emoji_smile_cat { background-position: -4965px 0;} 
.emoji_heart_eyes_cat { background-position: -4997px 0;} 
.emoji_kissing_cat { background-position: -5029px 0;} 
.emoji_smirk_cat { background-position: -5061px 0;} 
.emoji_scream_cat { background-position: -5093px 0;} 
.emoji_crying_cat_face { background-position: -5125px 0;} 
.emoji_joy_cat { background-position: -5157px 0;} 
.emoji_pouting_cat { background-position: -5189px 0;} 
.emoji_japanese_ogre { background-position: -5221px 0;} 
.emoji_japanese_goblin { background-position: -5253px 0;} 
.emoji_see_no_evil { background-position: -5285px 0;} 
.emoji_hear_no_evil { background-position: -5317px 0;} 
.emoji_speak_no_evil { background-position: -5349px 0;} 
.emoji_guardsman { background-position: -5381px 0;} 
.emoji_skull { background-position: -5413px 0;} 
.emoji_feet { background-position: -5445px 0;} 
.emoji_lips { background-position: -5477px 0;} 
.emoji_kiss { background-position: -5509px 0;} 
.emoji_droplet { background-position: -5541px 0;} 
.emoji_ear { background-position: -5573px 0;} 
.emoji_eyes { background-position: -5605px 0;} 
.emoji_nose { background-position: -5637px 0;} 
.emoji_tongue { background-position: -5669px 0;} 
.emoji_love_letter { background-position: -5701px 0;} 
.emoji_bust_in_silhouette { background-position: -5733px 0;} 
.emoji_busts_in_silhouette { background-position: -5765px 0;} 
.emoji_speech_balloon { background-position: -5797px 0;} 
.emoji_thought_balloon { background-position: -5829px 0;} 
.emoji_feelsgood { background-position: -5861px 0;} 
.emoji_finnadie { background-position: -5893px 0;} 
.emoji_goberserk { background-position: -5925px 0;} 
.emoji_godmode { background-position: -5957px 0;} 
.emoji_hurtrealbad { background-position: -5989px 0;} 
.emoji_rage1 { background-position: -6021px 0;} 
.emoji_rage2 { background-position: -6053px 0;} 
.emoji_rage3 { background-position: -6085px 0;} 
.emoji_rage4 { background-position: -6117px 0;} 
.emoji_suspect { background-position: -6149px 0;} 
.emoji_trollface { background-position: -6181px 0;} 
.emoji_sunny { background-position: -6213px 0;} 
.emoji_umbrella { background-position: -6245px 0;} 
.emoji_cloud { background-position: -6277px 0;} 
.emoji_snowflake { background-position: -6309px 0;} 
.emoji_snowman { background-position: -6341px 0;} 
.emoji_zap { background-position: -6373px 0;} 
.emoji_cyclone { background-position: -6405px 0;} 
.emoji_foggy { background-position: -6437px 0;} 
.emoji_ocean { background-position: -6469px 0;} 
.emoji_cat { background-position: -6501px 0;} 
.emoji_dog { background-position: -6533px 0;} 
.emoji_mouse { background-position: -6565px 0;} 
.emoji_hamster { background-position: -6597px 0;} 
.emoji_rabbit { background-position: -6629px 0;} 
.emoji_wolf { background-position: -6661px 0;} 
.emoji_frog { background-position: -6693px 0;} 
.emoji_tiger { background-position: -6725px 0;} 
.emoji_koala { background-position: -6757px 0;} 
.emoji_bear { background-position: -6789px 0;} 
.emoji_pig { background-position: -6821px 0;} 
.emoji_pig_nose { background-position: -6853px 0;} 
.emoji_cow { background-position: -6885px 0;} 
.emoji_boar { background-position: -6917px 0;} 
.emoji_monkey_face { background-position: -6949px 0;} 
.emoji_monkey { background-position: -6981px 0;} 
.emoji_horse { background-position: -7013px 0;} 
.emoji_racehorse { background-position: -7045px 0;} 
.emoji_camel { background-position: -7077px 0;} 
.emoji_sheep { background-position: -7109px 0;} 
.emoji_elephant { background-position: -7141px 0;} 
.emoji_panda_face { background-position: -7173px 0;} 
.emoji_snake { background-position: -7205px 0;} 
.emoji_bird { background-position: -7237px 0;} 
.emoji_baby_chick { background-position: -7269px 0;} 
.emoji_hatched_chick { background-position: -7301px 0;} 
.emoji_hatching_chick { background-position: -7333px 0;} 
.emoji_chicken { background-position: -7365px 0;} 
.emoji_penguin { background-position: -7397px 0;} 
.emoji_turtle { background-position: -7429px 0;} 
.emoji_bug { background-position: -7461px 0;} 
.emoji_honeybee { background-position: -7493px 0;} 
.emoji_ant { background-position: -7525px 0;} 
.emoji_beetle { background-position: -7557px 0;} 
.emoji_snail { background-position: -7589px 0;} 
.emoji_octopus { background-position: -7621px 0;} 
.emoji_tropical_fish { background-position: -7653px 0;} 
.emoji_fish { background-position: -7685px 0;} 
.emoji_whale { background-position: -7717px 0;} 
.emoji_whale2 { background-position: -7749px 0;} 
.emoji_dolphin { background-position: -7781px 0;} 
.emoji_cow2 { background-position: -7813px 0;} 
.emoji_ram { background-position: -7845px 0;} 
.emoji_rat { background-position: -7877px 0;} 
.emoji_water_buffalo { background-position: -7909px 0;} 
.emoji_tiger2 { background-position: -7941px 0;} 
.emoji_rabbit2 { background-position: -7973px 0;} 
.emoji_dragon { background-position: -8005px 0;} 
.emoji_goat { background-position: -8037px 0;} 
.emoji_rooster { background-position: -8069px 0;} 
.emoji_dog2 { background-position: -8101px 0;} 
.emoji_pig2 { background-position: -8133px 0;} 
.emoji_mouse2 { background-position: -8165px 0;} 
.emoji_ox { background-position: -8197px 0;} 
.emoji_dragon_face { background-position: -8229px 0;} 
.emoji_blowfish { background-position: -8261px 0;} 
.emoji_crocodile { background-position: -8293px 0;} 
.emoji_dromedary_camel { background-position: -8325px 0;} 
.emoji_leopard { background-position: -8357px 0;} 
.emoji_cat2 { background-position: -8389px 0;} 
.emoji_poodle { background-position: -8421px 0;} 
.emoji_paw_prints { background-position: -8453px 0;} 
.emoji_bouquet { background-position: -8485px 0;} 
.emoji_cherry_blossom { background-position: -8517px 0;} 
.emoji_tulip { background-position: -8549px 0;} 
.emoji_four_leaf_clover { background-position: -8581px 0;} 
.emoji_rose { background-position: -8613px 0;} 
.emoji_sunflower { background-position: -8645px 0;} 
.emoji_hibiscus { background-position: -8677px 0;} 
.emoji_maple_leaf { background-position: -8709px 0;} 
.emoji_leaves { background-position: -8741px 0;} 
.emoji_fallen_leaf { background-position: -8773px 0;} 
.emoji_herb { background-position: -8805px 0;} 
.emoji_mushroom { background-position: -8837px 0;} 
.emoji_cactus { background-position: -8869px 0;} 
.emoji_palm_tree { background-position: -8901px 0;} 
.emoji_evergreen_tree { background-position: -8933px 0;} 
.emoji_deciduous_tree { background-position: -8965px 0;} 
.emoji_chestnut { background-position: -8997px 0;} 
.emoji_seedling { background-position: -9029px 0;} 
.emoji_blossom { background-position: -9061px 0;} 
.emoji_ear_of_rice { background-position: -9093px 0;} 
.emoji_shell { background-position: -9125px 0;} 
.emoji_globe_with_meridians { background-position: -9157px 0;} 
.emoji_sun_with_face { background-position: -9189px 0;} 
.emoji_full_moon_with_face { background-position: -9221px 0;} 
.emoji_new_moon_with_face { background-position: -9253px 0;} 
.emoji_new_moon { background-position: -9285px 0;} 
.emoji_waxing_crescent_moon { background-position: -9317px 0;} 
.emoji_first_quarter_moon { background-position: -9349px 0;} 
.emoji_waxing_gibbous_moon { background-position: -9381px 0;} 
.emoji_full_moon { background-position: -9413px 0;} 
.emoji_waning_gibbous_moon { background-position: -9445px 0;} 
.emoji_last_quarter_moon { background-position: -9477px 0;} 
.emoji_waning_crescent_moon { background-position: -9509px 0;} 
.emoji_last_quarter_moon_with_face { background-position: -9541px 0;} 
.emoji_first_quarter_moon_with_face { background-position: -9573px 0;} 
.emoji_moon { background-position: -9605px 0;} 
.emoji_earth_africa { background-position: -9637px 0;} 
.emoji_earth_americas { background-position: -9669px 0;} 
.emoji_earth_asia { background-position: -9701px 0;} 
.emoji_volcano { background-position: -9733px 0;} 
.emoji_milky_way { background-position: -9765px 0;} 
.emoji_partly_sunny { background-position: -9797px 0;} 
.emoji_octocat { background-position: -9829px 0;} 
.emoji_squirrel { background-position: -9861px 0;} 
.emoji_bamboo { background-position: -9893px 0;} 
.emoji_gift_heart { background-position: -9925px 0;} 
.emoji_dolls { background-position: -9957px 0;} 
.emoji_school_satchel { background-position: -9989px 0;} 
.emoji_mortar_board { background-position: -10021px 0;} 
.emoji_flags { background-position: -10053px 0;} 
.emoji_fireworks { background-position: -10085px 0;} 
.emoji_sparkler { background-position: -10117px 0;} 
.emoji_wind_chime { background-position: -10149px 0;} 
.emoji_rice_scene { background-position: -10181px 0;} 
.emoji_jack_o_lantern { background-position: -10213px 0;} 
.emoji_ghost { background-position: -10245px 0;} 
.emoji_santa { background-position: -10277px 0;} 
.emoji_christmas_tree { background-position: -10309px 0;} 
.emoji_gift { background-position: -10341px 0;} 
.emoji_bell { background-position: -10373px 0;} 
.emoji_no_bell { background-position: -10405px 0;} 
.emoji_tanabata_tree { background-position: -10437px 0;} 
.emoji_tada { background-position: -10469px 0;} 
.emoji_confetti_ball { background-position: -10501px 0;} 
.emoji_balloon { background-position: -10533px 0;} 
.emoji_crystal_ball { background-position: -10565px 0;} 
.emoji_cd { background-position: -10597px 0;} 
.emoji_dvd { background-position: -10629px 0;} 
.emoji_floppy_disk { background-position: -10661px 0;} 
.emoji_camera { background-position: -10693px 0;} 
.emoji_video_camera { background-position: -10725px 0;} 
.emoji_movie_camera { background-position: -10757px 0;} 
.emoji_computer { background-position: -10789px 0;} 
.emoji_tv { background-position: -10821px 0;} 
.emoji_iphone { background-position: -10853px 0;} 
.emoji_phone { background-position: -10885px 0;} 
.emoji_telephone { background-position: -10917px 0;} 
.emoji_telephone_receiver { background-position: -10949px 0;} 
.emoji_pager { background-position: -10981px 0;} 
.emoji_fax { background-position: -11013px 0;} 
.emoji_minidisc { background-position: -11045px 0;} 
.emoji_vhs { background-position: -11077px 0;} 
.emoji_sound { background-position: -11109px 0;} 
.emoji_speaker { background-position: -11141px 0;} 
.emoji_mute { background-position: -11173px 0;} 
.emoji_loudspeaker { background-position: -11205px 0;} 
.emoji_mega { background-position: -11237px 0;} 
.emoji_hourglass { background-position: -11269px 0;} 
.emoji_hourglass_flowing_sand { background-position: -11301px 0;} 
.emoji_alarm_clock { background-position: -11333px 0;} 
.emoji_watch { background-position: -11365px 0;} 
.emoji_radio { background-position: -11397px 0;} 
.emoji_satellite { background-position: -11429px 0;} 
.emoji_loop { background-position: -11461px 0;} 
.emoji_mag { background-position: -11493px 0;} 
.emoji_mag_right { background-position: -11525px 0;} 
.emoji_unlock { background-position: -11557px 0;} 
.emoji_lock { background-position: -11589px 0;} 
.emoji_lock_with_ink_pen { background-position: -11621px 0;} 
.emoji_closed_lock_with_key { background-position: -11653px 0;} 
.emoji_key { background-position: -11685px 0;} 
.emoji_bulb { background-position: -11717px 0;} 
.emoji_flashlight { background-position: -11749px 0;} 
.emoji_high_brightness { background-position: -11781px 0;} 
.emoji_low_brightness { background-position: -11813px 0;} 
.emoji_electric_plug { background-position: -11845px 0;} 
.emoji_battery { background-position: -11877px 0;} 
.emoji_calling { background-position: -11909px 0;} 
.emoji_email { background-position: -11941px 0;} 
.emoji_mailbox { background-position: -11973px 0;} 
.emoji_postbox { background-position: -12005px 0;} 
.emoji_bath { background-position: -12037px 0;} 
.emoji_bathtub { background-position: -12069px 0;} 
.emoji_shower { background-position: -12101px 0;} 
.emoji_toilet { background-position: -12133px 0;} 
.emoji_wrench { background-position: -12165px 0;} 
.emoji_nut_and_bolt { background-position: -12197px 0;} 
.emoji_hammer { background-position: -12229px 0;} 
.emoji_seat { background-position: -12261px 0;} 
.emoji_moneybag { background-position: -12293px 0;} 
.emoji_yen { background-position: -12325px 0;} 
.emoji_dollar { background-position: -12357px 0;} 
.emoji_pound { background-position: -12389px 0;} 
.emoji_euro { background-position: -12421px 0;} 
.emoji_credit_card { background-position: -12453px 0;} 
.emoji_money_with_wings { background-position: -12485px 0;} 
.emoji_e\-mail { background-position: -12517px 0;} 
.emoji_inbox_tray { background-position: -12549px 0;} 
.emoji_outbox_tray { background-position: -12581px 0;} 
.emoji_envelope { background-position: -12613px 0;} 
.emoji_incoming_envelope { background-position: -12645px 0;} 
.emoji_postal_horn { background-position: -12677px 0;} 
.emoji_mailbox_closed { background-position: -12709px 0;} 
.emoji_mailbox_with_mail { background-position: -12741px 0;} 
.emoji_mailbox_with_no_mail { background-position: -12773px 0;} 
.emoji_door { background-position: -12805px 0;} 
.emoji_smoking { background-position: -12837px 0;} 
.emoji_bomb { background-position: -12869px 0;} 
.emoji_gun { background-position: -12901px 0;} 
.emoji_hocho { background-position: -12933px 0;} 
.emoji_pill { background-position: -12965px 0;} 
.emoji_syringe { background-position: -12997px 0;} 
.emoji_page_facing_up { background-position: -13029px 0;} 
.emoji_page_with_curl { background-position: -13061px 0;} 
.emoji_bookmark_tabs { background-position: -13093px 0;} 
.emoji_bar_chart { background-position: -13125px 0;} 
.emoji_chart_with_upwards_trend { background-position: -13157px 0;} 
.emoji_chart_with_downwards_trend { background-position: -13189px 0;} 
.emoji_scroll { background-position: -13221px 0;} 
.emoji_clipboard { background-position: -13253px 0;} 
.emoji_calendar { background-position: -13285px 0;} 
.emoji_date { background-position: -13317px 0;} 
.emoji_card_index { background-position: -13349px 0;} 
.emoji_file_folder { background-position: -13381px 0;} 
.emoji_open_file_folder { background-position: -13413px 0;} 
.emoji_scissors { background-position: -13445px 0;} 
.emoji_pushpin { background-position: -13477px 0;} 
.emoji_paperclip { background-position: -13509px 0;} 
.emoji_black_nib { background-position: -13541px 0;} 
.emoji_pencil2 { background-position: -13573px 0;} 
.emoji_straight_ruler { background-position: -13605px 0;} 
.emoji_triangular_ruler { background-position: -13637px 0;} 
.emoji_closed_book { background-position: -13669px 0;} 
.emoji_green_book { background-position: -13701px 0;} 
.emoji_blue_book { background-position: -13733px 0;} 
.emoji_orange_book { background-position: -13765px 0;} 
.emoji_notebook { background-position: -13797px 0;} 
.emoji_notebook_with_decorative_cover { background-position: -13829px 0;} 
.emoji_ledger { background-position: -13861px 0;} 
.emoji_books { background-position: -13893px 0;} 
.emoji_bookmark { background-position: -13925px 0;} 
.emoji_name_badge { background-position: -13957px 0;} 
.emoji_microscope { background-position: -13989px 0;} 
.emoji_telescope { background-position: -14021px 0;} 
.emoji_newspaper { background-position: -14053px 0;} 
.emoji_football { background-position: -14085px 0;} 
.emoji_basketball { background-position: -14117px 0;} 
.emoji_soccer { background-position: -14149px 0;} 
.emoji_baseball { background-position: -14181px 0;} 
.emoji_tennis { background-position: -14213px 0;} 
.emoji_8ball { background-position: -14245px 0;} 
.emoji_rugby_football { background-position: -14277px 0;} 
.emoji_bowling { background-position: -14309px 0;} 
.emoji_golf { background-position: -14341px 0;} 
.emoji_mountain_bicyclist { background-position: -14373px 0;} 
.emoji_bicyclist { background-position: -14405px 0;} 
.emoji_horse_racing { background-position: -14437px 0;} 
.emoji_snowboarder { background-position: -14469px 0;} 
.emoji_swimmer { background-position: -14501px 0;} 
.emoji_surfer { background-position: -14533px 0;} 
.emoji_ski { background-position: -14565px 0;} 
.emoji_spades { background-position: -14597px 0;} 
.emoji_hearts { background-position: -14629px 0;} 
.emoji_clubs { background-position: -14661px 0;} 
.emoji_diamonds { background-position: -14693px 0;} 
.emoji_gem { background-position: -14725px 0;} 
.emoji_ring { background-position: -14757px 0;} 
.emoji_trophy { background-position: -14789px 0;} 
.emoji_musical_score { background-position: -14821px 0;} 
.emoji_musical_keyboard { background-position: -14853px 0;} 
.emoji_violin { background-position: -14885px 0;} 
.emoji_space_invader { background-position: -14917px 0;} 
.emoji_video_game { background-position: -14949px 0;} 
.emoji_black_joker { background-position: -14981px 0;} 
.emoji_flower_playing_cards { background-position: -15013px 0;} 
.emoji_game_die { background-position: -15045px 0;} 
.emoji_dart { background-position: -15077px 0;} 
.emoji_mahjong { background-position: -15109px 0;} 
.emoji_clapper { background-position: -15141px 0;} 
.emoji_memo { background-position: -15173px 0;} 
.emoji_pencil { background-position: -15205px 0;} 
.emoji_book { background-position: -15237px 0;} 
.emoji_art { background-position: -15269px 0;} 
.emoji_microphone { background-position: -15301px 0;} 
.emoji_headphones { background-position: -15333px 0;} 
.emoji_trumpet { background-position: -15365px 0;} 
.emoji_saxophone { background-position: -15397px 0;} 
.emoji_guitar { background-position: -15429px 0;} 
.emoji_shoe { background-position: -15461px 0;} 
.emoji_sandal { background-position: -15493px 0;} 
.emoji_high_heel { background-position: -15525px 0;} 
.emoji_lipstick { background-position: -15557px 0;} 
.emoji_boot { background-position: -15589px 0;} 
.emoji_shirt { background-position: -15621px 0;} 
.emoji_tshirt { background-position: -15653px 0;} 
.emoji_necktie { background-position: -15685px 0;} 
.emoji_womans_clothes { background-position: -15717px 0;} 
.emoji_dress { background-position: -15749px 0;} 
.emoji_running_shirt_with_sash { background-position: -15781px 0;} 
.emoji_jeans { background-position: -15813px 0;} 
.emoji_kimono { background-position: -15845px 0;} 
.emoji_bikini { background-position: -15877px 0;} 
.emoji_ribbon { background-position: -15909px 0;} 
.emoji_tophat { background-position: -15941px 0;} 
.emoji_crown { background-position: -15973px 0;} 
.emoji_womans_hat { background-position: -16005px 0;} 
.emoji_mans_shoe { background-position: -16037px 0;} 
.emoji_closed_umbrella { background-position: -16069px 0;} 
.emoji_briefcase { background-position: -16101px 0;} 
.emoji_handbag { background-position: -16133px 0;} 
.emoji_pouch { background-position: -16165px 0;} 
.emoji_purse { background-position: -16197px 0;} 
.emoji_eyeglasses { background-position: -16229px 0;} 
.emoji_fishing_pole_and_fish { background-position: -16261px 0;} 
.emoji_coffee { background-position: -16293px 0;} 
.emoji_tea { background-position: -16325px 0;} 
.emoji_sake { background-position: -16357px 0;} 
.emoji_baby_bottle { background-position: -16389px 0;} 
.emoji_beer { background-position: -16421px 0;} 
.emoji_beers { background-position: -16453px 0;} 
.emoji_cocktail { background-position: -16485px 0;} 
.emoji_tropical_drink { background-position: -16517px 0;} 
.emoji_wine_glass { background-position: -16549px 0;} 
.emoji_fork_and_knife { background-position: -16581px 0;} 
.emoji_pizza { background-position: -16613px 0;} 
.emoji_hamburger { background-position: -16645px 0;} 
.emoji_fries { background-position: -16677px 0;} 
.emoji_poultry_leg { background-position: -16709px 0;} 
.emoji_meat_on_bone { background-position: -16741px 0;} 
.emoji_spaghetti { background-position: -16773px 0;} 
.emoji_curry { background-position: -16805px 0;} 
.emoji_fried_shrimp { background-position: -16837px 0;} 
.emoji_bento { background-position: -16869px 0;} 
.emoji_sushi { background-position: -16901px 0;} 
.emoji_fish_cake { background-position: -16933px 0;} 
.emoji_rice_ball { background-position: -16965px 0;} 
.emoji_rice_cracker { background-position: -16997px 0;} 
.emoji_rice { background-position: -17029px 0;} 
.emoji_ramen { background-position: -17061px 0;} 
.emoji_stew { background-position: -17093px 0;} 
.emoji_oden { background-position: -17125px 0;} 
.emoji_dango { background-position: -17157px 0;} 
.emoji_egg { background-position: -17189px 0;} 
.emoji_bread { background-position: -17221px 0;} 
.emoji_doughnut { background-position: -17253px 0;} 
.emoji_custard { background-position: -17285px 0;} 
.emoji_icecream { background-position: -17317px 0;} 
.emoji_ice_cream { background-position: -17349px 0;} 
.emoji_shaved_ice { background-position: -17381px 0;} 
.emoji_birthday { background-position: -17413px 0;} 
.emoji_cake { background-position: -17445px 0;} 
.emoji_cookie { background-position: -17477px 0;} 
.emoji_chocolate_bar { background-position: -17509px 0;} 
.emoji_candy { background-position: -17541px 0;} 
.emoji_lollipop { background-position: -17573px 0;} 
.emoji_honey_pot { background-position: -17605px 0;} 
.emoji_apple { background-position: -17637px 0;} 
.emoji_green_apple { background-position: -17669px 0;} 
.emoji_tangerine { background-position: -17701px 0;} 
.emoji_lemon { background-position: -17733px 0;} 
.emoji_cherries { background-position: -17765px 0;} 
.emoji_grapes { background-position: -17797px 0;} 
.emoji_watermelon { background-position: -17829px 0;} 
.emoji_strawberry { background-position: -17861px 0;} 
.emoji_peach { background-position: -17893px 0;} 
.emoji_melon { background-position: -17925px 0;} 
.emoji_banana { background-position: -17957px 0;} 
.emoji_pear { background-position: -17989px 0;} 
.emoji_pineapple { background-position: -18021px 0;} 
.emoji_sweet_potato { background-position: -18053px 0;} 
.emoji_eggplant { background-position: -18085px 0;} 
.emoji_tomato { background-position: -18117px 0;} 
.emoji_corn { background-position: -18149px 0;} 
.emoji_house { background-position: -18181px 0;} 
.emoji_house_with_garden { background-position: -18213px 0;} 
.emoji_school { background-position: -18245px 0;} 
.emoji_office { background-position: -18277px 0;} 
.emoji_post_office { background-position: -18309px 0;} 
.emoji_hospital { background-position: -18341px 0;} 
.emoji_bank { background-position: -18373px 0;} 
.emoji_convenience_store { background-position: -18405px 0;} 
.emoji_love_hotel { background-position: -18437px 0;} 
.emoji_hotel { background-position: -18469px 0;} 
.emoji_wedding { background-position: -18501px 0;} 
.emoji_church { background-position: -18533px 0;} 
.emoji_department_store { background-position: -18565px 0;} 
.emoji_european_post_office { background-position: -18597px 0;} 
.emoji_city_sunrise { background-position: -18629px 0;} 
.emoji_city_sunset { background-position: -18661px 0;} 
.emoji_japanese_castle { background-position: -18693px 0;} 
.emoji_european_castle { background-position: -18725px 0;} 
.emoji_tent { background-position: -18757px 0;} 
.emoji_factory { background-position: -18789px 0;} 
.emoji_tokyo_tower { background-position: -18821px 0;} 
.emoji_japan { background-position: -18853px 0;} 
.emoji_mount_fuji { background-position: -18885px 0;} 
.emoji_sunrise_over_mountains { background-position: -18917px 0;} 
.emoji_sunrise { background-position: -18949px 0;} 
.emoji_stars { background-position: -18981px 0;} 
.emoji_statue_of_liberty { background-position: -19013px 0;} 
.emoji_bridge_at_night { background-position: -19045px 0;} 
.emoji_carousel_horse { background-position: -19077px 0;} 
.emoji_rainbow { background-position: -19109px 0;} 
.emoji_ferris_wheel { background-position: -19141px 0;} 
.emoji_fountain { background-position: -19173px 0;} 
.emoji_roller_coaster { background-position: -19205px 0;} 
.emoji_ship { background-position: -19237px 0;} 
.emoji_speedboat { background-position: -19269px 0;} 
.emoji_boat { background-position: -19301px 0;} 
.emoji_sailboat { background-position: -19333px 0;} 
.emoji_rowboat { background-position: -19365px 0;} 
.emoji_anchor { background-position: -19397px 0;} 
.emoji_rocket { background-position: -19429px 0;} 
.emoji_airplane { background-position: -19461px 0;} 
.emoji_helicopter { background-position: -19493px 0;} 
.emoji_steam_locomotive { background-position: -19525px 0;} 
.emoji_tram { background-position: -19557px 0;} 
.emoji_mountain_railway { background-position: -19589px 0;} 
.emoji_bike { background-position: -19621px 0;} 
.emoji_aerial_tramway { background-position: -19653px 0;} 
.emoji_suspension_railway { background-position: -19685px 0;} 
.emoji_mountain_cableway { background-position: -19717px 0;} 
.emoji_tractor { background-position: -19749px 0;} 
.emoji_blue_car { background-position: -19781px 0;} 
.emoji_oncoming_automobile { background-position: -19813px 0;} 
.emoji_car { background-position: -19845px 0;} 
.emoji_red_car { background-position: -19877px 0;} 
.emoji_taxi { background-position: -19909px 0;} 
.emoji_oncoming_taxi { background-position: -19941px 0;} 
.emoji_articulated_lorry { background-position: -19973px 0;} 
.emoji_bus { background-position: -20005px 0;} 
.emoji_oncoming_bus { background-position: -20037px 0;} 
.emoji_rotating_light { background-position: -20069px 0;} 
.emoji_police_car { background-position: -20101px 0;} 
.emoji_oncoming_police_car { background-position: -20133px 0;} 
.emoji_fire_engine { background-position: -20165px 0;} 
.emoji_ambulance { background-position: -20197px 0;} 
.emoji_minibus { background-position: -20229px 0;} 
.emoji_truck { background-position: -20261px 0;} 
.emoji_train { background-position: -20293px 0;} 
.emoji_station { background-position: -20325px 0;} 
.emoji_train2 { background-position: -20357px 0;} 
.emoji_bullettrain_front { background-position: -20389px 0;} 
.emoji_bullettrain_side { background-position: -20421px 0;} 
.emoji_light_rail { background-position: -20453px 0;} 
.emoji_monorail { background-position: -20485px 0;} 
.emoji_railway_car { background-position: -20517px 0;} 
.emoji_trolleybus { background-position: -20549px 0;} 
.emoji_ticket { background-position: -20581px 0;} 
.emoji_fuelpump { background-position: -20613px 0;} 
.emoji_vertical_traffic_light { background-position: -20645px 0;} 
.emoji_traffic_light { background-position: -20677px 0;} 
.emoji_warning { background-position: -20709px 0;} 
.emoji_construction { background-position: -20741px 0;} 
.emoji_beginner { background-position: -20773px 0;} 
.emoji_atm { background-position: -20805px 0;} 
.emoji_slot_machine { background-position: -20837px 0;} 
.emoji_busstop { background-position: -20869px 0;} 
.emoji_barber { background-position: -20901px 0;} 
.emoji_hotsprings { background-position: -20933px 0;} 
.emoji_checkered_flag { background-position: -20965px 0;} 
.emoji_crossed_flags { background-position: -20997px 0;} 
.emoji_izakaya_lantern { background-position: -21029px 0;} 
.emoji_moyai { background-position: -21061px 0;} 
.emoji_circus_tent { background-position: -21093px 0;} 
.emoji_performing_arts { background-position: -21125px 0;} 
.emoji_round_pushpin { background-position: -21157px 0;} 
.emoji_triangular_flag_on_post { background-position: -21189px 0;} 
.emoji_jp { background-position: -21221px 0;} 
.emoji_kr { background-position: -21253px 0;} 
.emoji_cn { background-position: -21285px 0;} 
.emoji_us { background-position: -21317px 0;} 
.emoji_fr { background-position: -21349px 0;} 
.emoji_es { background-position: -21381px 0;} 
.emoji_it { background-position: -21413px 0;} 
.emoji_ru { background-position: -21445px 0;} 
.emoji_gb { background-position: -21477px 0;} 
.emoji_uk { background-position: -21509px 0;} 
.emoji_de { background-position: -21541px 0;} 
.emoji_one { background-position: -21573px 0;} 
.emoji_two { background-position: -21605px 0;} 
.emoji_three { background-position: -21637px 0;} 
.emoji_four { background-position: -21669px 0;} 
.emoji_five { background-position: -21701px 0;} 
.emoji_six { background-position: -21733px 0;} 
.emoji_seven { background-position: -21765px 0;} 
.emoji_eight { background-position: -21797px 0;} 
.emoji_nine { background-position: -21829px 0;} 
.emoji_keycap_ten { background-position: -21861px 0;} 
.emoji_1234 { background-position: -21893px 0;} 
.emoji_zero { background-position: -21925px 0;} 
.emoji_hash { background-position: -21957px 0;} 
.emoji_symbols { background-position: -21989px 0;} 
.emoji_arrow_backward { background-position: -22021px 0;} 
.emoji_arrow_down { background-position: -22053px 0;} 
.emoji_arrow_forward { background-position: -22085px 0;} 
.emoji_arrow_left { background-position: -22117px 0;} 
.emoji_capital_abcd { background-position: -22149px 0;} 
.emoji_abcd { background-position: -22181px 0;} 
.emoji_abc { background-position: -22213px 0;} 
.emoji_arrow_lower_left { background-position: -22245px 0;} 
.emoji_arrow_lower_right { background-position: -22277px 0;} 
.emoji_arrow_right { background-position: -22309px 0;} 
.emoji_arrow_up { background-position: -22341px 0;} 
.emoji_arrow_upper_left { background-position: -22373px 0;} 
.emoji_arrow_upper_right { background-position: -22405px 0;} 
.emoji_arrow_double_down { background-position: -22437px 0;} 
.emoji_arrow_double_up { background-position: -22469px 0;} 
.emoji_arrow_down_small { background-position: -22501px 0;} 
.emoji_arrow_heading_down { background-position: -22533px 0;} 
.emoji_arrow_heading_up { background-position: -22565px 0;} 
.emoji_leftwards_arrow_with_hook { background-position: -22597px 0;} 
.emoji_arrow_right_hook { background-position: -22629px 0;} 
.emoji_left_right_arrow { background-position: -22661px 0;} 
.emoji_arrow_up_down { background-position: -22693px 0;} 
.emoji_arrow_up_small { background-position: -22725px 0;} 
.emoji_arrows_clockwise { background-position: -22757px 0;} 
.emoji_arrows_counterclockwise { background-position: -22789px 0;} 
.emoji_rewind { background-position: -22821px 0;} 
.emoji_fast_forward { background-position: -22853px 0;} 
.emoji_information_source { background-position: -22885px 0;} 
.emoji_ok { background-position: -22917px 0;} 
.emoji_twisted_rightwards_arrows { background-position: -22949px 0;} 
.emoji_repeat { background-position: -22981px 0;} 
.emoji_repeat_one { background-position: -23013px 0;} 
.emoji_new { background-position: -23045px 0;} 
.emoji_top { background-position: -23077px 0;} 
.emoji_up { background-position: -23109px 0;} 
.emoji_cool { background-position: -23141px 0;} 
.emoji_free { background-position: -23173px 0;} 
.emoji_ng { background-position: -23205px 0;} 
.emoji_cinema { background-position: -23237px 0;} 
.emoji_koko { background-position: -23269px 0;} 
.emoji_signal_strength { background-position: -23301px 0;} 
.emoji_u5272 { background-position: -23333px 0;} 
.emoji_u5408 { background-position: -23365px 0;} 
.emoji_u55b6 { background-position: -23397px 0;} 
.emoji_u6307 { background-position: -23429px 0;} 
.emoji_u6708 { background-position: -23461px 0;} 
.emoji_u6709 { background-position: -23493px 0;} 
.emoji_u6e80 { background-position: -23525px 0;} 
.emoji_u7121 { background-position: -23557px 0;} 
.emoji_u7533 { background-position: -23589px 0;} 
.emoji_u7a7a { background-position: -23621px 0;} 
.emoji_u7981 { background-position: -23653px 0;} 
.emoji_sa { background-position: -23685px 0;} 
.emoji_restroom { background-position: -23717px 0;} 
.emoji_mens { background-position: -23749px 0;} 
.emoji_womens { background-position: -23781px 0;} 
.emoji_baby_symbol { background-position: -23813px 0;} 
.emoji_no_smoking { background-position: -23845px 0;} 
.emoji_parking { background-position: -23877px 0;} 
.emoji_wheelchair { background-position: -23909px 0;} 
.emoji_metro { background-position: -23941px 0;} 
.emoji_baggage_claim { background-position: -23973px 0;} 
.emoji_accept { background-position: -24005px 0;} 
.emoji_wc { background-position: -24037px 0;} 
.emoji_potable_water { background-position: -24069px 0;} 
.emoji_put_litter_in_its_place { background-position: -24101px 0;} 
.emoji_secret { background-position: -24133px 0;} 
.emoji_congratulations { background-position: -24165px 0;} 
.emoji_m { background-position: -24197px 0;} 
.emoji_passport_control { background-position: -24229px 0;} 
.emoji_left_luggage { background-position: -24261px 0;} 
.emoji_customs { background-position: -24293px 0;} 
.emoji_ideograph_advantage { background-position: -24325px 0;} 
.emoji_cl { background-position: -24357px 0;} 
.emoji_sos { background-position: -24389px 0;} 
.emoji_id { background-position: -24421px 0;} 
.emoji_no_entry_sign { background-position: -24453px 0;} 
.emoji_underage { background-position: -24485px 0;} 
.emoji_no_mobile_phones { background-position: -24517px 0;} 
.emoji_do_not_litter { background-position: -24549px 0;} 
.emoji_non\-potable_water { background-position: -24581px 0;} 
.emoji_no_bicycles { background-position: -24613px 0;} 
.emoji_no_pedestrians { background-position: -24645px 0;} 
.emoji_children_crossing { background-position: -24677px 0;} 
.emoji_no_entry { background-position: -24709px 0;} 
.emoji_eight_spoked_asterisk { background-position: -24741px 0;} 
.emoji_eight_pointed_black_star { background-position: -24773px 0;} 
.emoji_heart_decoration { background-position: -24805px 0;} 
.emoji_vs { background-position: -24837px 0;} 
.emoji_vibration_mode { background-position: -24869px 0;} 
.emoji_mobile_phone_off { background-position: -24901px 0;} 
.emoji_chart { background-position: -24933px 0;} 
.emoji_currency_exchange { background-position: -24965px 0;} 
.emoji_aries { background-position: -24997px 0;} 
.emoji_taurus { background-position: -25029px 0;} 
.emoji_gemini { background-position: -25061px 0;} 
.emoji_cancer { background-position: -25093px 0;} 
.emoji_leo { background-position: -25125px 0;} 
.emoji_virgo { background-position: -25157px 0;} 
.emoji_libra { background-position: -25189px 0;} 
.emoji_scorpius { background-position: -25221px 0;} 
.emoji_sagittarius { background-position: -25253px 0;} 
.emoji_capricorn { background-position: -25285px 0;} 
.emoji_aquarius { background-position: -25317px 0;} 
.emoji_pisces { background-position: -25349px 0;} 
.emoji_ophiuchus { background-position: -25381px 0;} 
.emoji_six_pointed_star { background-position: -25413px 0;} 
.emoji_negative_squared_cross_mark { background-position: -25445px 0;} 
.emoji_a { background-position: -25477px 0;} 
.emoji_b { background-position: -25509px 0;} 
.emoji_ab { background-position: -25541px 0;} 
.emoji_o2 { background-position: -25573px 0;} 
.emoji_diamond_shape_with_a_dot_inside { background-position: -25605px 0;} 
.emoji_recycle { background-position: -25637px 0;} 
.emoji_end { background-position: -25669px 0;} 
.emoji_on { background-position: -25701px 0;} 
.emoji_soon { background-position: -25733px 0;} 
.emoji_clock1 { background-position: -25765px 0;} 
.emoji_clock130 { background-position: -25797px 0;} 
.emoji_clock10 { background-position: -25829px 0;} 
.emoji_clock1030 { background-position: -25861px 0;} 
.emoji_clock11 { background-position: -25893px 0;} 
.emoji_clock1130 { background-position: -25925px 0;} 
.emoji_clock12 { background-position: -25957px 0;} 
.emoji_clock1230 { background-position: -25989px 0;} 
.emoji_clock2 { background-position: -26021px 0;} 
.emoji_clock230 { background-position: -26053px 0;} 
.emoji_clock3 { background-position: -26085px 0;} 
.emoji_clock330 { background-position: -26117px 0;} 
.emoji_clock4 { background-position: -26149px 0;} 
.emoji_clock430 { background-position: -26181px 0;} 
.emoji_clock5 { background-position: -26213px 0;} 
.emoji_clock530 { background-position: -26245px 0;} 
.emoji_clock6 { background-position: -26277px 0;} 
.emoji_clock630 { background-position: -26309px 0;} 
.emoji_clock7 { background-position: -26341px 0;} 
.emoji_clock730 { background-position: -26373px 0;} 
.emoji_clock8 { background-position: -26405px 0;} 
.emoji_clock830 { background-position: -26437px 0;} 
.emoji_clock9 { background-position: -26469px 0;} 
.emoji_clock930 { background-position: -26501px 0;} 
.emoji_heavy_dollar_sign { background-position: -26533px 0;} 
.emoji_copyright { background-position: -26565px 0;} 
.emoji_registered { background-position: -26597px 0;} 
.emoji_tm { background-position: -26629px 0;} 
.emoji_x { background-position: -26661px 0;} 
.emoji_heavy_exclamation_mark { background-position: -26693px 0;} 
.emoji_bangbang { background-position: -26725px 0;} 
.emoji_interrobang { background-position: -26757px 0;} 
.emoji_o { background-position: -26789px 0;} 
.emoji_heavy_multiplication_x { background-position: -26821px 0;} 
.emoji_heavy_plus_sign { background-position: -26853px 0;} 
.emoji_heavy_minus_sign { background-position: -26885px 0;} 
.emoji_heavy_division_sign { background-position: -26917px 0;} 
.emoji_white_flower { background-position: -26949px 0;} 
.emoji_100 { background-position: -26981px 0;} 
.emoji_heavy_check_mark { background-position: -27013px 0;} 
.emoji_ballot_box_with_check { background-position: -27045px 0;} 
.emoji_radio_button { background-position: -27077px 0;} 
.emoji_link { background-position: -27109px 0;} 
.emoji_curly_loop { background-position: -27141px 0;} 
.emoji_wavy_dash { background-position: -27173px 0;} 
.emoji_part_alternation_mark { background-position: -27205px 0;} 
.emoji_trident { background-position: -27237px 0;} 
.emoji_black_large_square { background-position: -27269px 0;} 
.emoji_white_large_square { background-position: -27301px 0;} 
.emoji_white_check_mark { background-position: -27333px 0;} 
.emoji_black_square_button { background-position: -27365px 0;} 
.emoji_white_square_button { background-position: -27397px 0;} 
.emoji_black_circle { background-position: -27429px 0;} 
.emoji_white_circle { background-position: -27461px 0;} 
.emoji_red_circle { background-position: -27493px 0;} 
.emoji_large_blue_circle { background-position: -27525px 0;} 
.emoji_large_blue_diamond { background-position: -27557px 0;} 
.emoji_large_orange_diamond { background-position: -27589px 0;} 
.emoji_small_blue_diamond { background-position: -27621px 0;} 
.emoji_small_orange_diamond { background-position: -27653px 0;} 
.emoji_small_red_triangle { background-position: -27685px 0;} 
.emoji_small_red_triangle_down { background-position: -27717px 0;} 
.emoji_shipit { background-position: -27749px 0;}
(function () {

    "use strict";

    var emojis = [
            "bowtie", "smile", "laughing", "blush", "smiley", "relaxed",
            "smirk", "heart_eyes", "kissing_heart", "kissing_closed_eyes", "flushed",
            "relieved", "satisfied", "grin", "wink", "stuck_out_tongue_winking_eye",
            "stuck_out_tongue_closed_eyes", "grinning", "kissing", "winky_face",
            "kissing_smiling_eyes", "stuck_out_tongue", "sleeping", "worried",
            "frowning", "anguished", "open_mouth", "grimacing", "confused", "hushed",
            "expressionless", "unamused", "sweat_smile", "sweat", "wow",
            "disappointed_relieved", "weary", "pensive", "disappointed", "confounded",
            "fearful", "cold_sweat", "persevere", "cry", "sob", "joy", "astonished",
            "scream", "neckbeard", "tired_face", "angry", "rage", "triumph", "sleepy",
            "yum", "mask", "sunglasses", "dizzy_face", "imp", "smiling_imp",
            "neutral_face", "no_mouth", "innocent", "alien", "yellow_heart",
            "blue_heart", "purple_heart", "heart", "green_heart", "broken_heart",
            "heartbeat", "heartpulse", "two_hearts", "revolving_hearts", "cupid",
            "sparkling_heart", "sparkles", "star", "star2", "dizzy", "boom",
            "collision", "anger", "exclamation", "question", "grey_exclamation",
            "grey_question", "zzz", "dash", "sweat_drops", "notes", "musical_note",
            "fire", "hankey", "poop", "shit", "\\+1", "thumbsup", "-1", "thumbsdown",
            "ok_hand", "punch", "facepunch", "fist", "v", "wave", "hand", "raised_hand",
            "open_hands", "point_up", "point_down", "point_left", "point_right",
            "raised_hands", "pray", "point_up_2", "clap", "muscle", "metal", "fu",
            "walking", "runner", "running", "couple", "family", "two_men_holding_hands",
            "two_women_holding_hands", "dancer", "dancers", "ok_woman", "no_good",
            "information_desk_person", "raising_hand", "bride_with_veil",
            "person_with_pouting_face", "person_frowning", "bow", "couplekiss",
            "couple_with_heart", "massage", "haircut", "nail_care", "boy", "girl",
            "woman", "man", "baby", "older_woman", "older_man",
            "person_with_blond_hair", "man_with_gua_pi_mao", "man_with_turban",
            "construction_worker", "cop", "angel", "princess", "smiley_cat",
            "smile_cat", "heart_eyes_cat", "kissing_cat", "smirk_cat", "scream_cat",
            "crying_cat_face", "joy_cat", "pouting_cat", "japanese_ogre",
            "japanese_goblin", "see_no_evil", "hear_no_evil", "speak_no_evil",
            "guardsman", "skull", "feet", "lips", "kiss", "droplet", "ear", "eyes",
            "nose", "tongue", "love_letter", "bust_in_silhouette",
            "busts_in_silhouette", "speech_balloon", "thought_balloon", "feelsgood",
            "finnadie", "goberserk", "godmode", "hurtrealbad", "rage1", "rage2",
            "rage3", "rage4", "suspect", "trollface", "sunny", "umbrella", "cloud",
            "snowflake", "snowman", "zap", "cyclone", "foggy", "ocean", "cat", "dog",
            "mouse", "hamster", "rabbit", "wolf", "frog", "tiger", "koala", "bear",
            "pig", "pig_nose", "cow", "boar", "monkey_face", "monkey", "horse",
            "racehorse", "camel", "sheep", "elephant", "panda_face", "snake", "bird",
            "baby_chick", "hatched_chick", "hatching_chick", "chicken", "penguin",
            "turtle", "bug", "honeybee", "ant", "beetle", "snail", "octopus",
            "tropical_fish", "fish", "whale", "whale2", "dolphin", "cow2", "ram", "rat",
            "water_buffalo", "tiger2", "rabbit2", "dragon", "goat", "rooster", "dog2",
            "pig2", "mouse2", "ox", "dragon_face", "blowfish", "crocodile",
            "dromedary_camel", "leopard", "cat2", "poodle", "paw_prints", "bouquet",
            "cherry_blossom", "tulip", "four_leaf_clover", "rose", "sunflower",
            "hibiscus", "maple_leaf", "leaves", "fallen_leaf", "herb", "mushroom",
            "cactus", "palm_tree", "evergreen_tree", "deciduous_tree", "chestnut",
            "seedling", "blossom", "ear_of_rice", "shell", "globe_with_meridians",
            "sun_with_face", "full_moon_with_face", "new_moon_with_face", "new_moon",
            "waxing_crescent_moon", "first_quarter_moon", "waxing_gibbous_moon",
            "full_moon", "waning_gibbous_moon", "last_quarter_moon",
            "waning_crescent_moon", "last_quarter_moon_with_face",
            "first_quarter_moon_with_face", "moon", "earth_africa", "earth_americas",
            "earth_asia", "volcano", "milky_way", "partly_sunny", "octocat", "squirrel",
            "bamboo", "gift_heart", "dolls", "school_satchel", "mortar_board", "flags",
            "fireworks", "sparkler", "wind_chime", "rice_scene", "jack_o_lantern",
            "ghost", "santa", "christmas_tree", "gift", "bell", "no_bell",
            "tanabata_tree", "tada", "confetti_ball", "balloon", "crystal_ball", "cd",
            "dvd", "floppy_disk", "camera", "video_camera", "movie_camera", "computer",
            "tv", "iphone", "phone", "telephone", "telephone_receiver", "pager", "fax",
            "minidisc", "vhs", "sound", "speaker", "mute", "loudspeaker", "mega",
            "hourglass", "hourglass_flowing_sand", "alarm_clock", "watch", "radio",
            "satellite", "loop", "mag", "mag_right", "unlock", "lock",
            "lock_with_ink_pen", "closed_lock_with_key", "key", "bulb", "flashlight",
            "high_brightness", "low_brightness", "electric_plug", "battery", "calling",
            "email", "mailbox", "postbox", "bath", "bathtub", "shower", "toilet",
            "wrench", "nut_and_bolt", "hammer", "seat", "moneybag", "yen", "dollar",
            "pound", "euro", "credit_card", "money_with_wings", "e-mail", "inbox_tray",
            "outbox_tray", "envelope", "incoming_envelope", "postal_horn",
            "mailbox_closed", "mailbox_with_mail", "mailbox_with_no_mail", "door",
            "smoking", "bomb", "gun", "hocho", "pill", "syringe", "page_facing_up",
            "page_with_curl", "bookmark_tabs", "bar_chart", "chart_with_upwards_trend",
            "chart_with_downwards_trend", "scroll", "clipboard", "calendar", "date",
            "card_index", "file_folder", "open_file_folder", "scissors", "pushpin",
            "paperclip", "black_nib", "pencil2", "straight_ruler", "triangular_ruler",
            "closed_book", "green_book", "blue_book", "orange_book", "notebook",
            "notebook_with_decorative_cover", "ledger", "books", "bookmark",
            "name_badge", "microscope", "telescope", "newspaper", "football",
            "basketball", "soccer", "baseball", "tennis", "8ball", "rugby_football",
            "bowling", "golf", "mountain_bicyclist", "bicyclist", "horse_racing",
            "snowboarder", "swimmer", "surfer", "ski", "spades", "hearts", "clubs",
            "diamonds", "gem", "ring", "trophy", "musical_score", "musical_keyboard",
            "violin", "space_invader", "video_game", "black_joker",
            "flower_playing_cards", "game_die", "dart", "mahjong", "clapper", "memo",
            "pencil", "book", "art", "microphone", "headphones", "trumpet", "saxophone",
            "guitar", "shoe", "sandal", "high_heel", "lipstick", "boot", "shirt",
            "tshirt", "necktie", "womans_clothes", "dress", "running_shirt_with_sash",
            "jeans", "kimono", "bikini", "ribbon", "tophat", "crown", "womans_hat",
            "mans_shoe", "closed_umbrella", "briefcase", "handbag", "pouch", "purse",
            "eyeglasses", "fishing_pole_and_fish", "coffee", "tea", "sake",
            "baby_bottle", "beer", "beers", "cocktail", "tropical_drink", "wine_glass",
            "fork_and_knife", "pizza", "hamburger", "fries", "poultry_leg",
            "meat_on_bone", "spaghetti", "curry", "fried_shrimp", "bento", "sushi",
            "fish_cake", "rice_ball", "rice_cracker", "rice", "ramen", "stew", "oden",
            "dango", "egg", "bread", "doughnut", "custard", "icecream", "ice_cream",
            "shaved_ice", "birthday", "cake", "cookie", "chocolate_bar", "candy",
            "lollipop", "honey_pot", "apple", "green_apple", "tangerine", "lemon",
            "cherries", "grapes", "watermelon", "strawberry", "peach", "melon",
            "banana", "pear", "pineapple", "sweet_potato", "eggplant", "tomato", "corn",
            "house", "house_with_garden", "school", "office", "post_office", "hospital",
            "bank", "convenience_store", "love_hotel", "hotel", "wedding", "church",
            "department_store", "european_post_office", "city_sunrise", "city_sunset",
            "japanese_castle", "european_castle", "tent", "factory", "tokyo_tower",
            "japan", "mount_fuji", "sunrise_over_mountains", "sunrise", "stars",
            "themoreyouknow", "tmyk",
            "statue_of_liberty", "bridge_at_night", "carousel_horse", "rainbow",
            "ferris_wheel", "fountain", "roller_coaster", "ship", "speedboat", "boat",
            "sailboat", "rowboat", "anchor", "rocket", "airplane", "helicopter",
            "steam_locomotive", "tram", "mountain_railway", "bike", "aerial_tramway",
            "suspension_railway", "mountain_cableway", "tractor", "blue_car",
            "oncoming_automobile", "car", "red_car", "taxi", "oncoming_taxi",
            "articulated_lorry", "bus", "oncoming_bus", "rotating_light", "police_car",
            "oncoming_police_car", "fire_engine", "ambulance", "minibus", "truck",
            "train", "station", "train2", "bullettrain_front", "bullettrain_side",
            "light_rail", "monorail", "railway_car", "trolleybus", "ticket", "fuelpump",
            "vertical_traffic_light", "traffic_light", "warning", "construction",
            "beginner", "atm", "slot_machine", "busstop", "barber", "hotsprings",
            "checkered_flag", "crossed_flags", "izakaya_lantern", "moyai",
            "circus_tent", "performing_arts", "round_pushpin",
            "triangular_flag_on_post", "jp", "kr", "cn", "us", "fr", "es", "it", "ru",
            "gb", "uk", "de", "one", "two", "three", "four", "five", "six", "seven",
            "eight", "nine", "keycap_ten", "1234", "zero", "hash", "symbols",
            "arrow_backward", "arrow_down", "arrow_forward", "arrow_left",
            "capital_abcd", "abcd", "abc", "arrow_lower_left", "arrow_lower_right",
            "arrow_right", "arrow_up", "arrow_upper_left", "arrow_upper_right",
            "arrow_double_down", "arrow_double_up", "arrow_down_small",
            "arrow_heading_down", "arrow_heading_up", "leftwards_arrow_with_hook",
            "arrow_right_hook", "left_right_arrow", "arrow_up_down", "arrow_up_small",
            "arrows_clockwise", "arrows_counterclockwise", "rewind", "fast_forward",
            "information_source", "ok", "twisted_rightwards_arrows", "repeat",
            "repeat_one", "new", "top", "up", "cool", "free", "ng", "cinema", "koko",
            "signal_strength", "u5272", "u5408", "u55b6", "u6307", "u6708", "u6709",
            "u6e80", "u7121", "u7533", "u7a7a", "u7981", "sa", "restroom", "mens",
            "womens", "baby_symbol", "no_smoking", "parking", "wheelchair", "metro",
            "baggage_claim", "accept", "wc", "potable_water", "put_litter_in_its_place",
            "secret", "congratulations", "m", "passport_control", "left_luggage",
            "customs", "ideograph_advantage", "cl", "sos", "id", "no_entry_sign",
            "underage", "no_mobile_phones", "do_not_litter", "non-potable_water",
            "no_bicycles", "no_pedestrians", "children_crossing", "no_entry",
            "eight_spoked_asterisk", "eight_pointed_black_star", "heart_decoration",
            "vs", "vibration_mode", "mobile_phone_off", "chart", "currency_exchange",
            "aries", "taurus", "gemini", "cancer", "leo", "virgo", "libra", "scorpius",
            "sagittarius", "capricorn", "aquarius", "pisces", "ophiuchus",
            "six_pointed_star", "negative_squared_cross_mark", "a", "b", "ab", "o2",
            "diamond_shape_with_a_dot_inside", "recycle", "end", "on", "soon", "clock1",
            "clock130", "clock10", "clock1030", "clock11", "clock1130", "clock12",
            "clock1230", "clock2", "clock230", "clock3", "clock330", "clock4",
            "clock430", "clock5", "clock530", "clock6", "clock630", "clock7",
            "clock730", "clock8", "clock830", "clock9", "clock930", "heavy_dollar_sign",
            "copyright", "registered", "tm", "x", "heavy_exclamation_mark", "bangbang",
            "interrobang", "o", "heavy_multiplication_x", "heavy_plus_sign",
            "heavy_minus_sign", "heavy_division_sign", "white_flower", "100",
            "heavy_check_mark", "ballot_box_with_check", "radio_button", "link",
            "curly_loop", "wavy_dash", "part_alternation_mark", "trident",
            "black_square", "white_square", "white_check_mark", "black_square_button",
            "white_square_button", "black_circle", "white_circle", "red_circle",
            "large_blue_circle", "large_blue_diamond", "large_orange_diamond",
            "small_blue_diamond", "small_orange_diamond", "small_red_triangle",
            "small_red_triangle_down", "shipit"
        ];

    var rEmojis = new RegExp(":(" + emojis.join("|") + "):", "g");

    var aliases = {};
    var rAliases;

    angular.module("dbaq.emoji", []).filter("emoji", function () {
        return function (input) {
            if (input === undefined) return;
            if (typeof input === "object") return input;

            return input
                .replace(rAliases, function (match, text) {
                    return aliases[text];
                })
                .replace(rEmojis, function (match, text) {
                    return "<i class='emoji emoji_" + text + "' title=':" + text + ":'></i>";
                });
        };
    });

    angular.module("dbaq.emoji").provider("emojiConfig", function () {
        var LOG_PREFIX = "emoji | ";

        var escapedAliases = [];
        var specialRegexCharacters = ["(", ")", ".", ",", "$", "^", "+", "*", "[", "]", "{", "}", "|"];
        var rSafeCharacters = new RegExp("(\\" + specialRegexCharacters.join("|\\") + ")", "g");

        return {
            addAlias: function (emoji, alias) {
                if (emojis.indexOf(emoji) === -1) {
                    throw new Error(LOG_PREFIX + "unknown emoji: " + emoji);
                }

                if (typeof alias !== "string") {
                    throw new Error(LOG_PREFIX + "alias is not a string");
                }

                aliases[alias] = ":" + emoji + ":";

                // escape special regex characters
                alias = alias.replace(rSafeCharacters, function (match, text) {
                    return "\\" + text;
                });

                escapedAliases.push(alias);
            },
            $get: function () {
                return {
                    escapedAliases: escapedAliases
                };
            }
        };
    });

    angular.module("dbaq.emoji").run(["emojiConfig", function (emojiConfig) {
        rAliases = new RegExp("(" + emojiConfig.escapedAliases.join("|") + ")", "g");
    }]);


}());