Skip to content

Instantly share code, notes, and snippets.

@uupaa
Last active July 15, 2016 08:31
Show Gist options
  • Save uupaa/2583e99420ec8042150d0850f26192a3 to your computer and use it in GitHub Desktop.
Save uupaa/2583e99420ec8042150d0850f26192a3 to your computer and use it in GitHub Desktop.
Apple HLS examples の NALUnit パターン

Apple が提供している HTTP Live Streaming Examples の HLS ストリームを紐解いてみましょう。

https://developer.apple.com/streaming/examples/

Main Profile stream

左にある Basic stream のページには、このようなHTMLが埋まっています。

<video src="https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8" controls="" autoplay="" width="400" height="300"></video>

bipbop_4x3_variant.m3u8 の内容は、以下のようになっています。

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=232370,CODECS="mp4a.40.2, avc1.4d4015"
gear1/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=649879,CODECS="mp4a.40.2, avc1.4d401e"
gear2/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=991714,CODECS="mp4a.40.2, avc1.4d401e"
gear3/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1927833,CODECS="mp4a.40.2, avc1.4d401f"
gear4/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=41457,CODECS="mp4a.40.2"
gear0/prog_index.m3u8

見やすくしたものがこちらです。

codecs video audio
mp4a.40.2, avc1.4d4015 H.264 Main Profile Level 2.1 AAC-LC
mp4a.40.2, avc1.4d401e H.264 Main Profile Level 3.0 AAC-LC
mp4a.40.2, avc1.4d401e H.264 Main Profile Level 3.0 AAC-LC
mp4a.40.2, avc1.4d401f H.264 Main Profile Level 3.1 AAC-LC
mp4a.40.2 AAC-LC

ここでは一番上のストリームを選択し、MPEG2-TS ファイルが格納されている m3u8 のリストを取得します。

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:9.97667,
fileSequence0.ts
#EXTINF:9.97667,

...

#EXTINF:9.97667,
fileSequence179.ts
#EXTINF:4.20333,
fileSequence180.ts
#EXT-X-ENDLIST

この情報をデコードしたものが以下です。

{
    cache: false,
    duration: 1799881,          // およそ30分のMovie
    sequence: 0,                // シーケンス番号は0
    stream: Array[181],         // 181個のtsファイルで構成されている
    targetDuration: 10000,      // 1つのtsはおよそ10秒
    type: "MOVIE",              // NOT LIVE
    url: "http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear1/prog_index.m3u8",
}

stream[0] を読み込みデコードし、NALUnit を取り出したものが以下のリストになります。

  • AUD から次のAUDまでが1つのフレームです
  • 先頭の AUD には必ずSPSとPPSが格納されており、これらには動画のメタ情報が格納されています
  • SPSとPPSは2番目以降のフレームでは省略も可能で、その場合は先行するフレームのSPS,PPSを流用する事になっています
AUD, SPS, PPS, SEI, SEI, SEI, IDR, IDR,
                              AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR

stream[1] (2番目のByteStream) をデコードし、NALUnit を取り出したものが以下のリストになります。

  • 先頭フレームにSPSとPPSが格納されていないため、stream[0] の最後のSPSとPPSを持ち込んで再利用する必要があります
AUD, SEI, NON_IDR, NON_IDR,
AUD, SEI, NON_IDR, NON_IDR,
AUD, SEI, NON_IDR, NON_IDR,
AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR,
AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SPS, PPS, SEI, IDR, IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR, AUD, SEI, NON_IDR, NON_IDR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment