|
|
(8 intermediate revisions by 7 users not shown) |
Line 1: |
Line 1: |
| == Introduction ==
| | #REDIRECT [[OggWrit]] |
| Ogg Writ is a text phrase codec. While its primary purpose is to embed
| |
| subtitles or captions in a Theora stream, its design makes it useful
| |
| for many other purposes. It could provide lyrics to song encoded in
| |
| Vorbis, a transcript to a political debate encoded in Speex, or even
| |
| incorporate a live chat session as part of a continuous video stream.
| |
| | |
| One of the unique aspects of Writ is its discontinuous nature, that is,
| |
| unlike other Ogg codecs the granules for which seperate packets effect
| |
| may overlap. See the Granules and Muxing section
| |
| below for how this works.
| |
| | |
| | |
| === SVN ===
| |
| Current Ogg Writ development is on Xiph SVN as /trunk/writ/. It's
| |
| being developed to use libogg2, so you'll need both to work on it.
| |
| The reference encoder and decoder are available as part of the py-ogg2
| |
| package which is available on Xiph SVN as /trunk/py-ogg2/.
| |
| | |
| | |
| <B>This is a (near final) working draft of the spec</B><BR>
| |
| Writ has been designed so that encoders/decoders can support a bare
| |
| minimum and be fully compatable with future subversions. Each subversion
| |
| adds a new feature, some building on others, adding a new header packet
| |
| and likely a new field to each body packet.
| |
| <P>
| |
| Decoders should ignore header packets beyond what they were written to
| |
| support and also ignore extra fields in data packets beyond their
| |
| current version. This allows new features to be added without requiring
| |
| that all software, or even most software, to support them.
| |
| <P>
| |
| We will be conservative about adding future subversions.
| |
| | |
| <pre>
| |
| Header Packet 0 (BOS, 16 bytes):
| |
| 0x00 ( 8 bit Header 0)
| |
| "writ" (LSB 0x74697277) (32 bit codec identification)
| |
| version ( 8 bit unsigned int, 0 = Alpha)
| |
| subversion ( 8 bit unsigned int)
| |
| granulerate_numerator (32 bit unsigned int)
| |
| granulerate_denominator (32 bit unsigned int)
| |
| | |
| Data Packet (each):
| |
| 0xFF ( 8 bit 0xFF = data packet)
| |
| granule_start (64 bit signed integer)
| |
| granule_duration (32 bit unsigned integer)
| |
| text_length ( 8 bit unsigned integer)
| |
| text_string (variable-length UTF-8 string)
| |
| | |
| | |
| <B>Subversion 1 adds multiple language support</B>
| |
| | |
| Header Packet 1 (Language Definition, 8+ bytes) :
| |
| 0x01 ( 8 bit Header 1)
| |
| "writ" (LSB 0x74697277) (32 bit codec identification)
| |
| num_languages ( 8 bit unsigned int)
| |
| [repeated 1+num_languages times] :
| |
| language_length ( 8 bit unsigned int)
| |
| language_string (0+language_length rfc3066)
| |
| language_desc_length ( 8 bit unsigned int)
| |
| language_desc_string (0+language_desc_length UTF-8)
| |
| | |
| Data Packet (each):
| |
| 0xFF ( 8 bit 0xFF = data packet)
| |
| granule_start (64 bit signed integer)
| |
| granule_duration (32 bit unsigned integer)
| |
| [repeated num_languages times] :
| |
| text_length ( 8 bit unsigned integer)
| |
| text_string (variable-length UTF-8 string)
| |
| | |
| | |
| <B>Subversion 2 adds text window support</B>
| |
| | |
| Header Packet 2 (Window Definition, 10+ bytes) :
| |
| 0x02 ( 8 bit Header 2)
| |
| "writ" (LSB 0x74697277) (32 bit codec identification)
| |
| location_scale_x (16 bit unsigned int)
| |
| location_scale_y (16 bit unsigned int)
| |
| num_windows ( 8 bit unsigned int)
| |
| [if (window_num > 0) repeated window_num times] :
| |
| location_x (variable length, see below)
| |
| location_y (variable length, see below)
| |
| location_width (variable length, see below)
| |
| location_height (variable length, see below)
| |
| alignment_x ( 2 bit alignment, see below)
| |
| alignment_y ( 2 bit alignment, see below)
| |
| | |
| Data Packet (each):
| |
| 0xFF ( 8 bit 0xFF = data packet)
| |
| granule_start (64 bit signed integer)
| |
| granule_duration (32 bit unsigned integer)
| |
| [repeated num_languages times] :
| |
| text_length ( 8 bit unsigned integer)
| |
| text_string (variable-length UTF-8 string)
| |
| [if (window_num > 1)] :
| |
| window_id ( 8 bit unsigned integer)
| |
| | |
| | |
| <B>Example Stream</B>
| |
| Header Packet 0
| |
| version 0
| |
| subversion 2
| |
| granulenum 1
| |
| granuledom 1
| |
| \x00writ\x00\x02\x01\x00\x00\x00\x01\x00\x00\x00
| |
| | |
| Header Packet 1
| |
| num_languages 2
| |
| Language 0:
| |
| language en
| |
| language_desc English
| |
| Language 1:
| |
| language es
| |
| language_desc Spanish
| |
| \x01writ\x01\x02en\x07English\x02es\x07Spanish
| |
| | |
| Header Packet 2
| |
| location_scale_x 4000 (12 bits)
| |
| location_scale_y 270 ( 9 bits)
| |
| num_windows 2
| |
| Window 0:
| |
| location_x 1
| |
| location_y 2
| |
| location_width 3
| |
| location_height 1
| |
| alignment_x 3 (Full)
| |
| alignment_y 3 (Full)
| |
| Window 1:
| |
| location_x 5
| |
| location_y 6
| |
| location_width 7
| |
| location_height 1
| |
| alignment_x 3 (Full)
| |
| alignment_y 3 (Full)
| |
| \x02writ\xa0\x0f\x0e\x01\x02\x01\x20\x60\x00\x02\x7c\x01\x18\x38\x80\x00\x0f
| |
| | |
| Phrase Packet:
| |
| granule_start 5
| |
| granule_duration 10
| |
| Language 0: "Hello World!"
| |
| Language 1: "Hola, Mundo!"
| |
| window_id 0
| |
| \xff\x05\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x0cHello World!\x0cHola, Mundo!\x00
| |
| | |
| Phrase Packet:
| |
| granule_start 12
| |
| granule_duration 15
| |
| Language 0: "It's a beautiful day to be born."
| |
| Language 1: "Es un día hermoso para que se llevará."
| |
| window_id 1
| |
| \xff\x0c\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x20It's a beautiful day to be born.\x26Es un d\xeda hermoso para que se llevar\xe1.\x01
| |
| | |
| | |
| </pre>
| |
| | |
| == Granules and Muxing ==
| |
| | |
| Granulepos in Writ (as well as future discontinuous codecs) will be by
| |
| start time, not end time, that the data in a given page is tagged for.
| |
| This greatly simplifies this specification (see the old method below).
| |
| | |
| All Writ phrases will be provided at and given the granulepos of their
| |
| start time, ordered by their start time within the logical bitstream.
| |
| | |
| Phrase packets with long durations should be repeated in the logical
| |
| bitstream at regular intervals to ensure that a player seeking to the
| |
| middle of their duration will still see them. These packet copies will
| |
| be identical to their original, including the start and duration fields,
| |
| the granulepos of the page they reside on will be incremented for each
| |
| copy to place it forward on the logical bitstream.
| |
| | |
| No two phrases can start on the same granule. On decoding, each packets'
| |
| start granule is checked against already known packets. If a match is
| |
| found the new packet is ignored. This prevents phrase copies from being
| |
| interpreted as new phrases.
| |
| | |
| == Seeking Example ==
| |
| <pre>
| |
| | |
| Here is a timeline (granule numbers at top, read down) of a sample stream:
| |
| | |
| <- Granules ->
| |
| 0000000000111111111122222222223333333333444444444455555555556666666666
| |
| 0123456789012345678901234567890123456789012345678901234567890123456789
| |
| ___________ ____________ ____________ ____________ _____________
| |
| |_Vorbis____||_Vorbis_____||_Vorbis_____||_Vorbis_____||_Vorbis______|
| |
| ____________________ ____________________________________
| |
| |_A____________>_____| |_D____________>______________>______|
| |
| _________ ___ __________ ___________
| |
| |_B_______| |_C_| |_E________| |_F_________|
| |
| | |
| (note: these have been seperated vertically for easy viewing only)
| |
| | |
| Packet Granule Description
| |
| V H0 0 Vorbis Header 0x01 (page by itself)
| |
| W H0 0 Writ Header 0 (page by itself)
| |
| V H1 0 Vorbis Header 0x03
| |
| V H2 0 Vorbis Header 0x05
| |
| W H1 0 Writ Header 1 (Language Defs)
| |
| W H2 0 Writ Header 2 (Window Defs)
| |
| W A 0 Writ Phrase A
| |
| W B 4 Writ Phrase B
| |
| V 12 Vorbis 0-12
| |
| W A 15 Writ Phrase A
| |
| W C 19 Writ Phrase C
| |
| W D 23 Writ Phrase D
| |
| V 26 Vorbis 13-26
| |
| W E 26 Writ Phrase E
| |
| W D 38 Writ Phrase D
| |
| V 40 Vorbis 27-40
| |
| W F 41 Writ Phrase F
| |
| W D 53 Writ Phrase D (EOF)
| |
| V 54 Vorbis 41-54
| |
| V 69 Vorbis 55-69 (EOF)
| |
| | |
| </pre>
| |
| | |
| Player begins decoding at beginning of stream. It reads the BOS pages
| |
| for both codecs, then receives a non-BOS page. At this point it knows
| |
| that it has two bitstreams to decode and has resolved that one is Writ
| |
| and the other Vorbis. It'll continue processing the headers for both.
| |
| | |
| Next it's going to find two Writ packets (phrases A and B) and toss them
| |
| into libwrit. Then it'll get to the first Vorbis data page. It now has
| |
| data from both bitstreams, and it knows (from the granulepos on the
| |
| Vorbis page) that it has enough data to run until 12. If there were any
| |
| Writ packets before 12 they would have appeared first.
| |
| | |
| At around granule 9 the listener seeks forward to 24. This will cause a
| |
| rapid seek through the file to find the first page with a granulepos
| |
| greater than the seek position and begin decoding at that point.
| |
| | |
| It'll find a Vorbis packet containing 13-26 (and not use 13-23) and Writ
| |
| phrase E. Again, having data from both bitstreams it can begin playing.
| |
| D would normally appear at granule 24 but is not known about yet. The
| |
| player knows that this is only enough to decode until 26 so, knowing
| |
| enough to prebuffer, continues reading the file as it plays the media.
| |
| | |
| The next packet it finds is Writ phrase D, and passing it to libwrit, is
| |
| found that the current granulepos is within the duration. It is thus
| |
| displayed immediatly, as it's prebuffered, without waiting for
| |
| granulepos 38. It'll keep reading (because the maximum decoded Vorbis
| |
| is still 26) and find a Vorbis packet with a 40 granulepos.
| |
| | |
| As it nears 38 it'll read the file again and find Writ phrase F, which
| |
| takes it out to 41. Vorbis only goes until 40, so it'll have to keep
| |
| reading until the next Vorbis packet.
| |
| | |
| Next it'll find Writ phrase D, which will be ignored by libwrit because
| |
| phrase D is already known (matches start granule of earlier D), and the
| |
| EOF on that page marks this as the last of the Writ stream.
| |
| | |
| It'll continue reading for the next Vorbis data and find the packet
| |
| for granule 54, followed by the Vorbis packet for granule 69. With that
| |
| it's EOS, EOF, finished.
| |
| | |
| This is of course a simplistic example, Writ and Vorbis will rarely have
| |
| granules which equal the same amount of time. Each bitstream has its'
| |
| own granule -> time mapping which is calculated when muxing concurrent
| |
| bitstreams within the file. So if there are 44100 Vorbis granules
| |
| per second and only 4 Writ granules per second, pages would be ordered
| |
| as W25 V297892 W31 V385932 W39 W41 V463057 etc. The logic used in the
| |
| above example works after this granule-time mapping is calculated.
| |
| | |
| | |
| == Ongoing Discussion ==
| |
| | |
| * How does this get "encoded" and "merged"?
| |
| ** <purple_haese> The muxing rule is pages are arranged in ascending order by the timestamp that is represented by their granulepos.
| |
| | |
| * For what reason is the 0x00 and 0xFF byte at the beginning of header and data packet respectively?
| |
| ** <xiphmont> If, after a seek, I hand your codec a header packet, what does the codec do?
| |
| ** <xiphmont> It does *nothing*. If I haven't told it to reset, the header is not data, *it must ignore the header*.
| |
| ** <xiphmont> this eliminates a huge raft of special cases in Ogg seeking.
| |
| | |
| | |
| | |
| == "The Old Way" ==
| |
| <B>The section below is for historical purposes only!</B>
| |
| <pre>
| |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| 2003/08/17
| |
| In a lengthy discussion with Monty and Derf the decidion to change the
| |
| behavior of discontinuous bitstreams in Ogg, or rather, extend the
| |
| current Ogg specification to handle discontinuous codecs, was made.
| |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| </pre>
| |
| | |
| The Ogg granulepos of each page is equal to the expiration of the text,
| |
| packets are ordered by expiration time and may overlap. So, at or before
| |
| text A is to be displayed, the following sequence is included:
| |
| | |
| <pre>
| |
| Physical Text Text Text
| |
| Location Packet Start Expire (text expire = page granulepos)
| |
| ---------------------------------------
| |
| 00 B 04 14
| |
| 00 D 19 23
| |
| 00 C 09 24
| |
| 00 F 27 34
| |
| 00 E 26 37
| |
| 00 G 35 47
| |
| 00 H 42 54
| |
| 00 A 00 59
| |
| 51 I 51 66
| |
| </pre>
| |
| So B, D, C, F, E, G, and H are all defined before A, building a FIFO (first
| |
| in first out) buffer in the player. Encoders should limit the extend of this
| |
| behavior to reduce nessesary buffer size on the player side by prematurly
| |
| expiring captions and recreating them periodically.
| |
| | |
| The screen should not be updated with the new captions until they've all
| |
| been processed to prevent "flicker". New caption data to the same position
| |
| will scroll the previous data upwards with no line breaks seperating them
| |
| (unless present in text).
| |
| [http://www.shop263.com/i-45/1.htm 107粘合剂]
| |
| [http://www.shop263.com/i-45/2.htm 内墙涂料]
| |
| [http://www.shop263.com/i-45/3.htm 内外浸塑防腐管道]
| |
| [http://www.shop263.com/i-45/4.htm 内外墙涂料]
| |
| [http://www.shop263.com/i-45/5.htm 内外墙专用腻子粉]
| |
| [http://www.shop263.com/i-45/6.htm 纳米丙稀酸外墙乳胶漆]
| |
| [http://www.shop263.com/i-45/7.htm 纳米材料]
| |
| [http://www.shop263.com/i-45/8.htm 纳米改性氟碳涂料]
| |
| [http://www.shop263.com/i-45/9.htm 纳米涂料]
| |
| [http://www.shop263.com/i-45/10.htm 纳米余辉自发光涂料]
| |
| [http://www.shop263.com/i-45/11.htm 耐腐蚀树脂]
| |
| [http://www.shop263.com/i-45/12.htm 耐高温特种涂料]
| |
| [http://www.shop263.com/i-45/13.htm 耐磨地坪骨料]
| |
| [http://www.shop263.com/i-45/14.htm 耐磨地坪漆]
| |
| [http://www.shop263.com/i-45/15.htm 偶联剂]
| |
| [http://www.shop263.com/i-45/16.htm 哌啶系列衍生物]
| |
| [http://www.shop263.com/i-45/17.htm 膨胀型过氯乙烯]
| |
| [http://www.shop263.com/i-45/18.htm 皮带运输机自动纠偏装置]
| |
| [http://www.shop263.com/i-45/19.htm 皮具边油]
| |
| [http://www.shop263.com/i-45/20.htm 偏苯三酸酐]
| |
| [http://www.shop263.com/i-45/21.htm 企口漆]
| |
| [http://www.shop263.com/i-45/22.htm 汽车门窗密封条植绒胶粘剂]
| |
| [http://www.shop263.com/i-45/23.htm 汽车密封胶]
| |
| [http://www.shop263.com/i-45/24.htm 汽车漆]
| |
| [http://www.shop263.com/i-45/25.htm 汽车涂料]
| |
| [http://www.shop263.com/i-45/26.htm 汽车修补漆]
| |
| [http://www.shop263.com/i-45/27.htm 汽油辛烷]
| |
| [http://www.shop263.com/i-45/28.htm 强膜防水漆]
| |
| [http://www.shop263.com/i-45/29.htm 羟基硅油]
| |
| [http://www.shop263.com/i-45/30.htm 羟基乙腈]
| |
| [http://www.shop263.com/i-45/31.htm 清漆]
| |
| [http://www.shop263.com/i-45/32.htm 全丙高弹性外墙乳胶漆]
| |
| [http://www.shop263.com/i-45/33.htm 全天候硅丙外墙漆]
| |
| [http://www.shop263.com/i-45/34.htm 全息铝箔]
| |
| [http://www.shop263.com/i-45/35.htm 全息烟膜]
| |
| [http://www.shop263.com/i-45/36.htm 热固化阻焊油墨]
| |
| [http://www.shop263.com/i-45/37.htm 热固性半光无光型粉末]
| |
| [http://www.shop263.com/i-45/38.htm 热固性粉末]
| |
| [http://www.shop263.com/i-45/39.htm 热固性粉末涂料]
| |
| [http://www.shop263.com/i-45/40.htm 热固性环氧]
| |
| [http://www.shop263.com/i-45/41.htm 热固性环氧聚酯粉末涂料]
| |
| [http://www.shop263.com/i-45/42.htm 热固性环氧型粉末涂料]
| |
| [http://www.shop263.com/i-45/43.htm 重防腐油漆]
| |
| [http://www.shop263.com/i-45/44.htm 助流剂]
| |
| [http://www.shop263.com/i-45/45.htm 转炉喷补料]
| |
| [http://www.shop263.com/i-45/46.htm 转移膜]
| |
| [http://www.shop263.com/i-45/47.htm 装饰美术纹理型粉末涂料]
| |
| [http://www.shop263.com/i-45/48.htm 装饰纸色浆]
| |
| [http://www.shop263.com/i-45/49.htm 装修漆]
| |
| [http://www.shop263.com/i-45/50.htm 紫外固化]
| |
| [http://www.shop263.com/i-45/51.htm 紫外光固化]
| |
| [http://www.shop263.com/i-45/52.htm 紫外光固化产品]
| |
| [http://www.shop263.com/i-45/53.htm 紫外光固化涂料]
| |
| [http://www.shop263.com/i-45/54.htm 紫外光硬化阻焊油墨]
| |
| [http://www.shop263.com/i-45/55.htm 自动涂装生产]
| |
| [http://www.shop263.com/i-45/56.htm 自乳化丙烯酸环氧树脂]
| |
| [http://www.shop263.com/i-45/57.htm 阻聚剂]
| |
| [http://www.shop263.com/i-45/58.htm 阻燃剂]
| |
| [http://www.shop263.com/i-45/59.htm 阻燃两用装修漆]
| |
| [http://www.shop263.com/i-45/60.htm 阻燃吸音装饰板]
| |
| [http://www.shop263.com/i-45/61.htm 钻井泥浆助剂]
| |
| [http://www.shop263.com/i-45/62.htm 醋酸丁酯和乙酯]
| |
| [http://www.shop263.com/i-45/63.htm 醋酸乙烯无光乳胶漆]
| |
| [http://www.shop263.com/i-45/64.htm 大孔螯合型离子交换树脂]
| |
| [http://www.shop263.com/i-45/65.htm 单力建筑胶]
| |
| [http://www.shop263.com/i-45/66.htm 弹性凹凸漆]
| |
| [http://www.shop263.com/i-45/67.htm 弹性建筑密封胶]
| |
| [http://www.shop263.com/i-45/68.htm 弹性胶浆]
| |
| [http://www.shop263.com/i-45/69.htm 弹性涂料]
| |
| [http://www.shop263.com/i-45/70.htm 弹性质感涂料]
| |
| [http://www.shop263.com/i-45/71.htm 导电漆]
| |
| [http://www.shop263.com/i-45/72.htm 导静电地坪涂料]
| |
| [http://www.shop263.com/i-45/73.htm 道路沥青]
| |
| [http://www.shop263.com/i-45/74.htm 灯用卤磷酸钙荧光粉]
| |
| [http://www.shop263.com/i-45/75.htm 低温固化粉末型]
| |
| [http://www.shop263.com/i-45/76.htm 底色漆]
| |
| [http://www.shop263.com/i-45/77.htm 地板漆]
| |
| [http://www.shop263.com/i-45/78.htm 地坪涂料]
| |
| [http://www.shop263.com/i-45/79.htm 电线瓷瓶]
| |
| [http://www.shop263.com/i-45/80.htm 饺子模]
| |
| [http://www.shop263.com/i-45/81.htm 结构胶]
| |
| [http://www.shop263.com/i-45/82.htm 界面剂]
| |
| [http://www.shop263.com/i-45/83.htm 金刚石磨轮]
| |
| [http://www.shop263.com/i-45/84.htm 金属防腐蚀专用涂料]
| |
| [http://www.shop263.com/i-45/85.htm 金属漆]
| |
| [http://www.shop263.com/i-45/86.htm 金属闪光漆]
| |
| [http://www.shop263.com/i-45/87.htm 金属外壳涂装]
| |
| [http://www.shop263.com/i-45/88.htm 金属装饰漆]
| |
| [http://www.shop263.com/i-45/89.htm 浸渍料]
| |
| [http://www.shop263.com/i-45/90.htm 静电喷涂]
| |
| [http://www.shop263.com/i-45/91.htm 静电涂装成套设备]
| |
| [http://www.shop263.com/i-45/92.htm 静电植绒胶]
| |
| [http://www.shop263.com/i-45/93.htm 聚氨脂灌封料]
| |
| [http://www.shop263.com/i-45/94.htm 聚氨酯]
| |
| [http://www.shop263.com/i-45/95.htm 聚氨酯单组份防腐漆]
| |
| [http://www.shop263.com/i-45/96.htm 聚氨酯粉末涂料]
| |
| [http://www.shop263.com/i-45/97.htm 聚氨酯互穿网络防腐涂料]
| |
| [http://www.shop263.com/i-45/98.htm 硬胶漆]
| |
| [http://www.shop263.com/i-45/99.htm 硬脂酸]
| |
| [http://www.shop263.com/i-45/100.htm 硬脂酸锌]
| |
| [http://www.shop263.com/i-45/101.htm 硬质UV哑光涂料]
| |
| [http://www.shop263.com/i-45/102.htm 硬质UV罩光涂]
| |
| [http://www.shop263.com/i-45/103.htm 硬质UV罩光涂料]
| |
| [http://www.shop263.com/i-45/104.htm 硬质聚氨酯泡沫]
| |
| [http://www.shop263.com/i-45/105.htm 钢结构防火涂料]
| |
| [http://www.shop263.com/i-45/106.htm 钢结构隔热]
| |
| [http://www.shop263.com/i-45/107.htm 钢性抗渗腻子]
| |
| [http://www.shop263.com/i-45/108.htm 高档环保水性建筑涂料]
| |
| [http://www.shop263.com/i-45/109.htm 高档聚酯漆]
| |
| [http://www.shop263.com/i-45/110.htm 高分子助剂]
| |
| [http://www.shop263.com/i-45/111.htm 高光外墙专用乳液]
| |
| [http://www.shop263.com/i-45/112.htm 高级彩色瓦面漆]
| |
| [http://www.shop263.com/i-45/113.htm 高级彩色屋面防水涂料]
| |
| [http://www.shop263.com/i-45/114.htm 高级防火涂料]
| |
| [http://www.shop263.com/i-45/115.htm 高级聚氨酯漆]
| |
| [http://www.shop263.com/i-45/116.htm 高级闪光雨线]
| |
| [http://www.shop263.com/i-45/117.htm 高级丝光乳胶漆]
| |
| [http://www.shop263.com/i-45/118.htm 蓝色粉末材料]
| |
| [http://www.shop263.com/i-45/119.htm 镭射烟用衬纸]
| |
| [http://www.shop263.com/i-45/120.htm 冷库硬质聚氨酯泡沫]
| |
| [http://www.shop263.com/i-45/121.htm 冷施工橡塑防水防腐涂料]
| |
| [http://www.shop263.com/i-45/122.htm 连铸保护渣]
| |
| [http://www.shop263.com/i-45/123.htm 亮光耐酒精硬胶油墨]
| |
| [http://www.shop263.com/i-45/124.htm 邻苯二甲酸二丁酯]
| |
| [http://www.shop263.com/i-45/125.htm 磷化液]
| |
| [http://www.shop263.com/i-45/126.htm 流平剂]
| |
| [http://www.shop263.com/i-45/127.htm 流态化石灰粉]
| |
| [http://www.shop263.com/i-45/128.htm 热固性聚酯型粉末涂料]
| |
| [http://www.shop263.com/i-45/129.htm 热固性美术纹理型粉末涂料]
| |
| [http://www.shop263.com/i-45/130.htm 热喷涂锌]
| |
| [http://www.shop263.com/i-45/131.htm 热熔反光标线涂料]
| |
| [http://www.shop263.com/i-45/132.htm 热熔性树脂]
| |
| [http://www.shop263.com/i-45/133.htm 热塑涂料]
| |
| [http://www.shop263.com/i-45/134.htm 人造大理石]
| |
| [http://www.shop263.com/i-45/135.htm 溶剂型工业涂料]
| |
| [http://www.shop263.com/i-45/136.htm 溶剂型聚酰]
| |
| [http://www.shop263.com/i-45/137.htm 溶剂型聚酰胺]
| |
| [http://www.shop263.com/i-45/138.htm 有机硅改性丙烯酸外墙涂料]
| |
| [http://www.shop263.com/i-45/139.htm 鞣剂]
| |
| [http://www.shop263.com/i-45/140.htm 乳胶漆]
| |
| [http://www.shop263.com/i-45/141.htm 乳液]
| |
| [http://www.shop263.com/i-45/142.htm 锐钛型钛白粉]
| |
| [http://www.shop263.com/i-45/143.htm 三聚氯氰]
| |
| [http://www.shop263.com/i-45/144.htm 三片金属罐外涂料]
| |
| [http://www.shop263.com/i-45/145.htm 三羟甲基丙烷三丙烯酸酯]
| |
| [http://www.shop263.com/i-45/146.htm 三嗪类除草剂]
| |
| [http://www.shop263.com/i-45/147.htm 三烷基]
| |
| [http://www.shop263.com/i-45/148.htm 三元乙丙橡胶]
| |
| [http://www.shop263.com/i-45/149.htm 色标卡]
| |
| [http://www.shop263.com/i-45/150.htm 深酞兰氨基面漆]
| |
| [http://www.shop263.com/i-45/151.htm 石材防护剂]
| |
| [http://www.shop263.com/i-45/152.htm 石头漆]
| |
| [http://www.shop263.com/i-45/153.htm 食品级氟涂料]
| |
| [http://www.shop263.com/i-45/154.htm 室内乳胶漆]
| |
| [http://www.shop263.com/i-45/155.htm 室温固化31570X]
| |
| [http://www.shop263.com/i-45/156.htm 兽用抗生素原料药]
| |
| [http://www.shop263.com/i-45/157.htm 叔丙乳液]
| |
| [http://www.shop263.com/i-45/158.htm 叔醋乳液]
| |
| [http://www.shop263.com/i-45/159.htm 树脂]
| |
| [http://www.shop263.com/i-45/160.htm 树脂胶版油墨]
| |
| [http://www.shop263.com/i-45/161.htm 树脂类地坪]
| |
| [http://www.shop263.com/i-45/162.htm 双组份烤漆]
| |
| [http://www.shop263.com/i-45/163.htm 水不漏]
| |
| [http://www.shop263.com/i-45/164.htm 水处理产品]
| |
| [http://www.shop263.com/i-45/165.htm 水墨]
| |
| [http://www.shop263.com/i-45/166.htm 水性氟碳漆]
| |
| [http://www.shop263.com/i-45/167.htm 水性工业涂料]
| |
| [http://www.shop263.com/i-45/168.htm 水性光油]
| |
| [http://www.shop263.com/i-45/169.htm 水性环保型功能性涂料]
| |
| [http://www.shop263.com/i-45/170.htm 水性涂料]
| |
| [http://www.shop263.com/i-45/171.htm 水性助剂]
| |
| [http://www.shop263.com/i-45/172.htm 水性自乳化双酚A环氧树脂]
| |
| [http://www.shop263.com/i-45/173.htm 丝光乳胶漆]
| |
| [http://www.shop263.com/i-45/174.htm 丝面漆专用乳液]
| |
| [http://www.shop263.com/i-45/175.htm 丝网油墨]
| |
| [http://www.shop263.com/i-45/176.htm 塑胶UV上光油]
| |
| [http://www.shop263.com/i-45/177.htm 塑料薄膜油墨]
| |
| [http://www.shop263.com/i-45/178.htm 塑料助剂]
| |
| [http://www.shop263.com/i-45/179.htm 碳钢食品容器内壁防腐涂料]
| |
| [http://www.shop263.com/i-45/180.htm 陶瓷粉]
| |
| [http://www.shop263.com/i-45/181.htm 特富龙涂料]
| |
| [http://www.shop263.com/i-45/182.htm 特种工业涂料]
| |
| [http://www.shop263.com/i-45/183.htm 特种油墨]
| |
| [http://www.shop263.com/i-45/184.htm 天然真石漆]
| |
| [http://www.shop263.com/i-45/185.htm 填眼灰]
| |
| [http://www.shop263.com/i-45/186.htm 铁沟捣打料]
| |
| [http://www.shop263.com/i-45/187.htm 涂料色浆]
| |
| [http://www.shop263.com/i-45/188.htm 涂料用丙烯酸树脂] | |
| [http://www.shop263.com/i-45/189.htm 涂料用树脂]
| |
| [http://www.shop263.com/i-45/190.htm 脱塑剂]
| |
| [http://www.shop263.com/i-45/191.htm 外墙平涂类]
| |
| [http://www.shop263.com/i-45/192.htm 外墙普通面涂料]
| |
| [http://www.shop263.com/i-45/193.htm 外墙涂料]
| |
| [http://www.shop263.com/i-45/194.htm 外墙有色底涂料]
| |
| [http://www.shop263.com/i-45/195.htm 万能胶]
| |
| [http://www.shop263.com/i-45/196.htm 网版印刷油墨]
| |
| [http://www.shop263.com/i-45/197.htm 微型球铝粉]
| |
| [http://www.shop263.com/i-45/198.htm 无苯稀释剂]
| |
| [http://www.shop263.com/i-45/199.htm 无毒固化剂]
| |
| [http://www.shop263.com/i-45/200.htm 无毒玩具漆]
| |
| [http://www.shop263.com/i-45/201.htm 无毒无溶剂涂料]
| |
| [http://www.shop263.com/i-45/202.htm 五氧化二钒]
| |
| [http://www.shop263.com/i-45/203.htm 吸附树脂]
| |
| [http://www.shop263.com/i-45/204.htm 象牙白氨基面漆]
| |
| [http://www.shop263.com/i-45/205.htm 橡胶金属热硫化胶粘剂]
| |
| [http://www.shop263.com/i-45/206.htm 橡胶漆]
| |
| [http://www.shop263.com/i-45/207.htm 消泡剂]
| |
| [http://www.shop263.com/i-45/208.htm 硝基类系列涂料]
| |
| [http://www.shop263.com/i-45/209.htm 硝基漆]
| |
| [http://www.shop263.com/i-45/210.htm 鞋材油漆]
| |
| [http://www.shop263.com/i-45/211.htm 仿瓷涂料]
| |
| [http://www.shop263.com/i-45/212.htm 水性防瓷釉涂料]
| |
| [http://www.shop263.com/i-45/213.htm 压裂弹]
| |
| [http://www.shop263.com/i-45/214.htm 压敏陶瓷]
| |
| [http://www.shop263.com/i-45/215.htm 哑光厚质高弹弹性乳胶漆]
| |
| [http://www.shop263.com/i-45/216.htm 亚光内墙乳胶]
| |
| [http://www.shop263.com/i-45/217.htm 亚光内墙乳胶漆]
| |
| [http://www.shop263.com/i-45/218.htm 岩棉制品]
| |
| [http://www.shop263.com/i-45/219.htm 颜料糊]
| |
| [http://www.shop263.com/i-45/220.htm 氧化络绿]
| |
| [http://www.shop263.com/i-45/221.htm 液体氰化钠]
| |
| [http://www.shop263.com/i-45/222.htm 乙烯基异丁基醚]
| |
| [http://www.shop263.com/i-45/223.htm 乙烯基酯]
| |
| [http://www.shop263.com/i-45/224.htm 乙氧基化]
| |
| [http://www.shop263.com/i-45/225.htm 异氰酸酯]
| |
| [http://www.shop263.com/i-45/226.htm 印花色浆]
| |
| [http://www.shop263.com/i-45/227.htm 印花粘合剂]
| |
| [http://www.shop263.com/i-45/228.htm 印刷包装胶粘剂]
| |
| [http://www.shop263.com/i-45/229.htm 油封]
| |
| [http://www.shop263.com/i-45/230.htm 油漆催干剂]
| |
| [http://www.shop263.com/i-45/231.htm 油漆专用稀释剂]
| |
| [http://www.shop263.com/i-45/232.htm 油田污水处理系列药剂]
| |
| [http://www.shop263.com/i-45/233.htm 油性丙烯酸树脂]
| |
| [http://www.shop263.com/i-45/234.htm 油性高抗碱底漆]
| |
| [http://www.shop263.com/i-45/235.htm 有机膨润土]
| |
| [http://www.shop263.com/i-45/236.htm 有机锡]
| |
| [http://www.shop263.com/i-45/237.htm 玉石钢化涂料]
| |
| [http://www.shop263.com/i-45/238.htm 原子灰]
| |
| [http://www.shop263.com/i-45/239.htm 增稠剂]
| |
| [http://www.shop263.com/i-45/240.htm 增密双层胶辊]
| |
| [http://www.shop263.com/i-45/241.htm 粘合粘合剂]
| |
| [http://www.shop263.com/i-45/242.htm 珍珠白氨基面漆]
| |
| [http://www.shop263.com/i-45/243.htm 振利保温材料]
| |
| [http://www.shop263.com/i-45/244.htm 振利涂料]
| |
| [http://www.shop263.com/i-45/245.htm 整体耐磨防腐地面涂料]
| |
| [http://www.shop263.com/i-45/246.htm 纸品UV涂料]
| |
| [http://www.shop263.com/i-45/247.htm 制革助剂]
| |
| [http://www.shop263.com/i-45/248.htm 中间包喷涂料]
| |
| [http://www.shop263.com/i-45/249.htm 中密度纤维板]
| |
| [http://www.shop263.com/i-45/250.htm 中涂漆]
| |
| [http://www.shop263.com/i-45/251.htm 种子包衣剂]
| |
| [http://www.shop263.com/i-45/252.htm 本色漆]
| |
| http://www.shop263.com/i-45/1.htm
| |
| http://www.shop263.com/i-45/2.htm
| |
| http://www.shop263.com/i-45/3.htm
| |
| http://www.shop263.com/i-45/4.htm
| |
| http://www.shop263.com/i-45/5.htm
| |
| http://www.shop263.com/i-45/6.htm
| |
| http://www.shop263.com/i-45/7.htm
| |
| http://www.shop263.com/i-45/8.htm
| |
| http://www.shop263.com/i-45/9.htm
| |
| http://www.shop263.com/i-45/10.htm
| |
| http://www.shop263.com/i-45/11.htm
| |
| http://www.shop263.com/i-45/12.htm
| |
| http://www.shop263.com/i-45/13.htm
| |
| http://www.shop263.com/i-45/14.htm
| |
| http://www.shop263.com/i-45/15.htm
| |
| http://www.shop263.com/i-45/16.htm
| |
| http://www.shop263.com/i-45/17.htm
| |
| http://www.shop263.com/i-45/18.htm
| |
| http://www.shop263.com/i-45/19.htm
| |
| http://www.shop263.com/i-45/20.htm
| |
| http://www.shop263.com/i-45/21.htm
| |
| http://www.shop263.com/i-45/22.htm
| |
| http://www.shop263.com/i-45/23.htm
| |
| http://www.shop263.com/i-45/24.htm
| |
| http://www.shop263.com/i-45/25.htm
| |
| http://www.shop263.com/i-45/26.htm
| |
| http://www.shop263.com/i-45/27.htm
| |
| http://www.shop263.com/i-45/28.htm
| |
| http://www.shop263.com/i-45/29.htm
| |
| http://www.shop263.com/i-45/30.htm
| |
| http://www.shop263.com/i-45/31.htm
| |
| http://www.shop263.com/i-45/32.htm
| |
| http://www.shop263.com/i-45/33.htm
| |
| http://www.shop263.com/i-45/34.htm
| |
| http://www.shop263.com/i-45/35.htm
| |
| http://www.shop263.com/i-45/36.htm
| |
| http://www.shop263.com/i-45/37.htm
| |
| http://www.shop263.com/i-45/38.htm
| |
| http://www.shop263.com/i-45/39.htm
| |
| http://www.shop263.com/i-45/40.htm
| |
| http://www.shop263.com/i-45/41.htm
| |
| http://www.shop263.com/i-45/42.htm
| |
| http://www.shop263.com/i-45/43.htm
| |
| http://www.shop263.com/i-45/44.htm
| |
| http://www.shop263.com/i-45/45.htm
| |
| http://www.shop263.com/i-45/46.htm
| |
| http://www.shop263.com/i-45/47.htm
| |
| http://www.shop263.com/i-45/48.htm
| |
| http://www.shop263.com/i-45/49.htm
| |
| http://www.shop263.com/i-45/50.htm
| |
| http://www.shop263.com/i-45/51.htm
| |
| http://www.shop263.com/i-45/52.htm
| |
| http://www.shop263.com/i-45/53.htm
| |
| http://www.shop263.com/i-45/54.htm
| |
| http://www.shop263.com/i-45/55.htm
| |
| http://www.shop263.com/i-45/56.htm
| |
| http://www.shop263.com/i-45/57.htm
| |
| http://www.shop263.com/i-45/58.htm
| |
| http://www.shop263.com/i-45/59.htm
| |
| http://www.shop263.com/i-45/60.htm
| |
| http://www.shop263.com/i-45/61.htm
| |
| http://www.shop263.com/i-45/62.htm
| |
| http://www.shop263.com/i-45/63.htm
| |
| http://www.shop263.com/i-45/64.htm
| |
| http://www.shop263.com/i-45/65.htm
| |
| http://www.shop263.com/i-45/66.htm
| |
| http://www.shop263.com/i-45/67.htm
| |
| http://www.shop263.com/i-45/68.htm
| |
| http://www.shop263.com/i-45/69.htm
| |
| http://www.shop263.com/i-45/70.htm
| |
| http://www.shop263.com/i-45/71.htm
| |
| http://www.shop263.com/i-45/72.htm
| |
| http://www.shop263.com/i-45/73.htm
| |
| http://www.shop263.com/i-45/74.htm
| |
| http://www.shop263.com/i-45/75.htm
| |
| http://www.shop263.com/i-45/76.htm
| |
| http://www.shop263.com/i-45/77.htm
| |
| http://www.shop263.com/i-45/78.htm
| |
| http://www.shop263.com/i-45/79.htm
| |
| http://www.shop263.com/i-45/80.htm
| |
| http://www.shop263.com/i-45/81.htm
| |
| http://www.shop263.com/i-45/82.htm
| |
| http://www.shop263.com/i-45/83.htm
| |
| http://www.shop263.com/i-45/84.htm
| |
| http://www.shop263.com/i-45/85.htm
| |
| http://www.shop263.com/i-45/86.htm
| |
| http://www.shop263.com/i-45/87.htm
| |
| http://www.shop263.com/i-45/88.htm
| |
| http://www.shop263.com/i-45/89.htm
| |
| http://www.shop263.com/i-45/90.htm
| |
| http://www.shop263.com/i-45/91.htm
| |
| http://www.shop263.com/i-45/92.htm
| |
| http://www.shop263.com/i-45/93.htm
| |
| http://www.shop263.com/i-45/94.htm
| |
| http://www.shop263.com/i-45/95.htm
| |
| http://www.shop263.com/i-45/96.htm
| |
| http://www.shop263.com/i-45/97.htm
| |
| http://www.shop263.com/i-45/98.htm
| |
| http://www.shop263.com/i-45/99.htm
| |
| http://www.shop263.com/i-45/100.htm
| |
| http://www.shop263.com/i-45/101.htm
| |
| http://www.shop263.com/i-45/102.htm
| |
| http://www.shop263.com/i-45/103.htm
| |
| http://www.shop263.com/i-45/104.htm
| |
| http://www.shop263.com/i-45/105.htm
| |
| http://www.shop263.com/i-45/106.htm
| |
| http://www.shop263.com/i-45/107.htm
| |
| http://www.shop263.com/i-45/108.htm
| |
| http://www.shop263.com/i-45/109.htm
| |
| http://www.shop263.com/i-45/110.htm
| |
| http://www.shop263.com/i-45/111.htm
| |
| http://www.shop263.com/i-45/112.htm
| |
| http://www.shop263.com/i-45/113.htm
| |
| http://www.shop263.com/i-45/114.htm
| |
| http://www.shop263.com/i-45/115.htm
| |
| http://www.shop263.com/i-45/116.htm
| |
| http://www.shop263.com/i-45/117.htm
| |
| http://www.shop263.com/i-45/118.htm
| |
| http://www.shop263.com/i-45/119.htm
| |
| http://www.shop263.com/i-45/120.htm
| |
| http://www.shop263.com/i-45/121.htm
| |
| http://www.shop263.com/i-45/122.htm
| |
| http://www.shop263.com/i-45/123.htm
| |
| http://www.shop263.com/i-45/124.htm
| |
| http://www.shop263.com/i-45/125.htm
| |
| http://www.shop263.com/i-45/126.htm
| |
| http://www.shop263.com/i-45/127.htm
| |
| http://www.shop263.com/i-45/128.htm
| |
| http://www.shop263.com/i-45/129.htm
| |
| http://www.shop263.com/i-45/130.htm
| |
| http://www.shop263.com/i-45/131.htm
| |
| http://www.shop263.com/i-45/132.htm
| |
| http://www.shop263.com/i-45/133.htm
| |
| http://www.shop263.com/i-45/134.htm
| |
| http://www.shop263.com/i-45/135.htm
| |
| http://www.shop263.com/i-45/136.htm
| |
| http://www.shop263.com/i-45/137.htm
| |
| http://www.shop263.com/i-45/138.htm
| |
| http://www.shop263.com/i-45/139.htm
| |
| http://www.shop263.com/i-45/140.htm
| |
| http://www.shop263.com/i-45/141.htm
| |
| http://www.shop263.com/i-45/142.htm
| |
| http://www.shop263.com/i-45/143.htm
| |
| http://www.shop263.com/i-45/144.htm
| |
| http://www.shop263.com/i-45/145.htm
| |
| http://www.shop263.com/i-45/146.htm
| |
| http://www.shop263.com/i-45/147.htm
| |
| http://www.shop263.com/i-45/148.htm
| |
| http://www.shop263.com/i-45/149.htm
| |
| http://www.shop263.com/i-45/150.htm
| |
| http://www.shop263.com/i-45/151.htm
| |
| http://www.shop263.com/i-45/152.htm
| |
| http://www.shop263.com/i-45/153.htm
| |
| http://www.shop263.com/i-45/154.htm
| |
| http://www.shop263.com/i-45/155.htm
| |
| http://www.shop263.com/i-45/156.htm
| |
| http://www.shop263.com/i-45/157.htm
| |
| http://www.shop263.com/i-45/158.htm
| |
| http://www.shop263.com/i-45/159.htm
| |
| http://www.shop263.com/i-45/160.htm
| |
| http://www.shop263.com/i-45/161.htm
| |
| http://www.shop263.com/i-45/162.htm
| |
| http://www.shop263.com/i-45/163.htm
| |
| http://www.shop263.com/i-45/164.htm
| |
| http://www.shop263.com/i-45/165.htm
| |
| http://www.shop263.com/i-45/166.htm
| |
| http://www.shop263.com/i-45/167.htm
| |
| http://www.shop263.com/i-45/168.htm
| |
| http://www.shop263.com/i-45/169.htm
| |
| http://www.shop263.com/i-45/170.htm
| |
| http://www.shop263.com/i-45/171.htm
| |
| http://www.shop263.com/i-45/172.htm
| |
| http://www.shop263.com/i-45/173.htm
| |
| http://www.shop263.com/i-45/174.htm
| |
| http://www.shop263.com/i-45/175.htm
| |
| http://www.shop263.com/i-45/176.htm
| |
| http://www.shop263.com/i-45/177.htm
| |
| http://www.shop263.com/i-45/178.htm
| |
| http://www.shop263.com/i-45/179.htm
| |
| http://www.shop263.com/i-45/180.htm
| |
| http://www.shop263.com/i-45/181.htm
| |
| http://www.shop263.com/i-45/182.htm
| |
| http://www.shop263.com/i-45/183.htm
| |
| http://www.shop263.com/i-45/184.htm
| |
| http://www.shop263.com/i-45/185.htm
| |
| http://www.shop263.com/i-45/186.htm
| |
| http://www.shop263.com/i-45/187.htm
| |
| http://www.shop263.com/i-45/188.htm
| |
| http://www.shop263.com/i-45/189.htm
| |
| http://www.shop263.com/i-45/190.htm
| |
| http://www.shop263.com/i-45/191.htm
| |
| http://www.shop263.com/i-45/192.htm
| |
| http://www.shop263.com/i-45/193.htm
| |
| http://www.shop263.com/i-45/194.htm
| |
| http://www.shop263.com/i-45/195.htm
| |
| http://www.shop263.com/i-45/196.htm
| |
| http://www.shop263.com/i-45/197.htm
| |
| http://www.shop263.com/i-45/198.htm
| |
| http://www.shop263.com/i-45/199.htm
| |
| http://www.shop263.com/i-45/200.htm
| |
| http://www.shop263.com/i-45/201.htm
| |
| http://www.shop263.com/i-45/202.htm
| |
| http://www.shop263.com/i-45/203.htm
| |
| http://www.shop263.com/i-45/204.htm
| |
| http://www.shop263.com/i-45/205.htm
| |
| http://www.shop263.com/i-45/206.htm
| |
| http://www.shop263.com/i-45/207.htm
| |
| http://www.shop263.com/i-45/208.htm
| |
| http://www.shop263.com/i-45/209.htm
| |
| http://www.shop263.com/i-45/210.htm
| |
| http://www.shop263.com/i-45/211.htm
| |
| http://www.shop263.com/i-45/212.htm
| |
| http://www.shop263.com/i-45/213.htm
| |
| http://www.shop263.com/i-45/214.htm
| |
| http://www.shop263.com/i-45/215.htm
| |
| http://www.shop263.com/i-45/216.htm
| |
| http://www.shop263.com/i-45/217.htm
| |
| http://www.shop263.com/i-45/218.htm
| |
| http://www.shop263.com/i-45/219.htm
| |
| http://www.shop263.com/i-45/220.htm
| |
| http://www.shop263.com/i-45/221.htm
| |
| http://www.shop263.com/i-45/222.htm
| |
| http://www.shop263.com/i-45/223.htm
| |
| http://www.shop263.com/i-45/224.htm
| |
| http://www.shop263.com/i-45/225.htm
| |
| http://www.shop263.com/i-45/226.htm
| |
| http://www.shop263.com/i-45/227.htm
| |
| http://www.shop263.com/i-45/228.htm
| |
| http://www.shop263.com/i-45/229.htm
| |
| http://www.shop263.com/i-45/230.htm
| |
| http://www.shop263.com/i-45/231.htm
| |
| http://www.shop263.com/i-45/232.htm
| |
| http://www.shop263.com/i-45/233.htm
| |
| http://www.shop263.com/i-45/234.htm
| |
| http://www.shop263.com/i-45/235.htm
| |
| http://www.shop263.com/i-45/236.htm
| |
| http://www.shop263.com/i-45/237.htm
| |
| http://www.shop263.com/i-45/238.htm
| |
| http://www.shop263.com/i-45/239.htm
| |
| http://www.shop263.com/i-45/240.htm
| |
| http://www.shop263.com/i-45/241.htm
| |
| http://www.shop263.com/i-45/242.htm
| |
| http://www.shop263.com/i-45/243.htm
| |
| http://www.shop263.com/i-45/244.htm
| |
| http://www.shop263.com/i-45/245.htm
| |
| http://www.shop263.com/i-45/246.htm
| |
| http://www.shop263.com/i-45/247.htm
| |
| http://www.shop263.com/i-45/248.htm
| |
| http://www.shop263.com/i-45/249.htm
| |
| http://www.shop263.com/i-45/250.htm
| |
| http://www.shop263.com/i-45/251.htm
| |
| http://www.shop263.com/i-45/252.htm
| |